2010-05-10 17 views
10

मैं इस तरह की एक आर्केटाइप संरचना बनाने की कोशिश करता हूं, हमारे वेब-फ्रेमवर्क के लिए कुछ कस्टम फ़ोल्डरों वाला एक वेबपैप। विशेष रूप से कुछ गतिशील फ़ोल्डर्स जिनमें आर्केटाइप द्वारा लाई गई कुछ फाइलें भी शामिल होंगी।मेवेन 2 आर्केटाइप के साथ गतिशील नामित फ़ोल्डर कैसे बनाएं?

└───src 
    └───main 
     └───webapp 
      └───WEB-INF 
       ├───cfg 
       │ ├───log4j 
       │ └───resources 
       │  └───extensions 
       │   ├───${shortName}-business 
       │   └───${shortName}-layout 
       └───lib 

मैं अपने archetype-metadata.xml करने के लिए एक आवश्यक संपत्ति जोड़ा परियोजना, जो अद्वितीय फ़ोल्डरों पैदा करने के लिए अन्य बातों के अलावा प्रयोग किया जाता है के लिए एक शॉर्ट नाम है।

<requiredProperties> 
    <requiredProperty key="shortName" /> 
</requiredProperties> 

संपत्ति shortName मैं एक fileSet में उपयोग करें:

mvn archetype:generate -B \ 
     -DgroupId=com.stackoverflow \ 
     -DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \ 
     -DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \ 
     -DshortName=soq 

मैं निम्नलिखित फ़ोल्डर संरचना प्राप्त करने के लिए मान लेते हैं:

<fileSet> 
    <directory>[..]/resources/extensions/${shortName}-business</directory> 
</fileSet> 

<fileSet> 
    <directory>[..]/resources/extensions/${shortName}-layout</directory> 
</fileSet> 

आदेश मूलरूप आदर्श उत्पन्न करने के लिए

..\ 
    ├───soq-business 
    └───soq-layout 

लेकिन मुझे उदा। यह नाम ${shortName}-business फ़ोल्डर के रूप में। संपत्ति के साथ मधुमक्खी के बिना बदल दिया।

..\ 
    ├───${shortName}-business 
    └───${shortName}-layout 

मैं इसे कैसे प्राप्त कर सकता हूं? और मैं soq-business से नीचे फ़ाइलों को कैसे रख सकता हूं? इस समय फ़ोल्डर नाम जानने के बिना?

उत्तर

17

मैं आज ठीक उसी समस्या लगा ...

मैं कौन से पथ में प्लेसहोल्डर का उपयोग कर का वर्णन एडम Leggett से कुछ ब्लॉग प्रविष्टि पाया: https://mikeciblogs.wordpress.com/2010/01/14/working-with-custom-maven-archetypes-part-1/ (चरण 4) पर एक नजर है।

चाल घुंघराले ब्रेसिज़ सिंटैक्स की बजाय दोगुनी अंडरस्कोर का उपयोग करने लगती है, इसलिए ${shortName}__shortName__ बन जाता है।

हालांकि, मैंने अभी तक समाधान की कोशिश नहीं की है। यदि आप ऐसा करते हैं, तो कृपया यह बताएं कि यह काम करता है या नहीं। धन्यवाद!

एचटीएच!

+0

के साथ काम करती है, धन्यवाद, यह बहुत अच्छा काम करता है। – codevour

+0

ब्लॉग उपलब्ध नहीं है। शायद लिंक टूटा हुआ है, क्या कोई इसे अपडेट कर सकता है! –

+0

सभी आवश्यक सूचनाएं उत्तर में हैं –

2

जैसा कि विवियन ने कृपया ध्यान दिया है, मेरी ब्लॉग प्रविष्टि इस बारे में कुछ संकेत देती है कि यह कैसे करें। हालांकि, एक चीज देखने के लिए (जिसे ब्लॉग में स्पष्ट रूप से उल्लिखित नहीं किया गया है) यह है कि यह सुविधा केवल आर्केटाइप प्लगइन 2.x

+1

इस अतिरिक्त जानकारी के लिए धन्यवाद। – codevour