2010-08-11 13 views
11

उत्पन्न करें मैंने एक कस्टम प्रोजेक्ट सेटअप के लिए एक मेवेन आर्केटाइप बनाया है, जो अद्भुत काम कर रहा है, लेकिन मैं सोच रहा था कि अतिरिक्त पैरामीटर पारित करना संभव है ताकि मैं कुछ और दिलचस्प टेम्पलेट कर सकूं। मैं की तरहमैवेन आर्केटाइप के लिए अतिरिक्त गुणों को पास करना:

mvn archetype:generate -DarchetypeCatalog=local -DdbHost=localhost 

कुछ करने की कोशिश की और मेरे टेम्पलेट में

... 
<option name="db.host.config.option" value="${dbHost}" /> 
... 

शब्दों में कहें, लेकिन यह है कि काम करने के लिए प्रतीत नहीं होता। क्या आर्केटाइप के साथ ऐसा करने का कोई तरीका है?

उत्तर

16

आपको requiredPropertyMETA-INF/maven/archetype-metadata.xml में उल्लेख करना होगा।

<archetype-descriptor name="basic"> 
    <requiredProperties> 
     <requiredProperty key="dbHost"/> 
    </requiredProperties> 
</archetype-descriptor> 
+0

धन्यवाद उपयोग कर सकते हैं, आप थोड़ा उस पर विस्तार कर सकता है? मुझे यकीन नहीं है कि मैं वाक्यविन्यास के साथ काफी परिचित हूं। – Ceilingfish

+2

सुनिश्चित करें। आपके आर्केटाइप प्रोजेक्ट में, आपको एक फ़ोल्डर प्रोजेक्ट/मेटा-आईएनएफ/मेवेन बनाना होगा। उस फ़ोल्डर में आपको archetype-metadata.xml नामक फ़ाइल बनाना होगा। उस फ़ाइल में आपको प्रत्येक विन्यास तर्क के लिए आवश्यक प्रॉपर्टी टैग जोड़ना चाहिए जो आप चाहते हैं। आप यहां अधिक जानकारी प्राप्त कर सकते हैं http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-metadata.html – devsprint

+0

मैंने यह कोशिश की है, लेकिन यह भ्रम में भाग गया है कि क्या यह archetype- metadata.xml (जैसा कि आप सुझाव देते हैं) या archetype.xml में डाल रहे हैं, और archetype.xml की कुछ सामग्री काम नहीं कर रही है अगर मैं इसे archetype-metadata.xml में डालता हूं, और यदि मैंने दोनों को करने की कोशिश की तो समस्याएं चल रही हैं एक साथ मेरे archetype में फ़ाइलें। Http://stackoverflow.com/questions/36342578/whats-the-difference-between-archetype-xml-and-archetype-metadata-xml-in-maven – Jibbyj

7

हालांकि इस सवाल का नहीं बल्कि पुरानी है, मैं अपने खुद के अनुभव Maven 3.04 के साथ

प्रदान करेंगे जबकि एक परियोजना से मूलरूप आदर्श पैदा (बनाने-से-परियोजना), आप कर सकते हैं एक संपत्ति फ़ाइल को एक तर्क के रूप में पास करें। प्रत्येक एकल संपत्ति (कुंजी = मान) बदले में बदले में आवश्यक प्रॉपर्टी archetype-metadata.xml फ़ाइल में, "मान" के साथ इसके डिफ़ॉल्ट मान के रूप में उत्पन्न होता है।
दूसरी ओर, आर्केटाइप पीढ़ी की प्रक्रिया हमारी टेक्स्ट फ़ाइलों में स्ट्रिंग "मान" की तलाश करेगी और इसे "$ {key}" (यानी dbHost = db.host.config.option "डीबी की तलाश करेगा) .host.config.option "और इसे $ {dbHost} द्वारा प्रतिस्थापित करें)

जबकि अंतिम परियोजना पीढ़ी के लिए आदर्श का उपयोग कर (साथ उत्पन्न) हम साथ-डी कुंजी = मूल्य, इस पैरामीटर के लिए एक मूल्य प्रदान करने का मौका दिया जाता है। तो हाथ से archetype-metadata.xml फ़ाइल को संपादित करने की कोई आवश्यकता नहीं है।

+0

देखें क्या आप एक प्रॉपर्टी फ़ाइल को तर्क के रूप में पास करने के तरीके पर एक उदाहरण पोस्ट कर सकते हैं 'mvn archetype: create-from-project' के लिए? –

0

हमें कमांड प्रॉम्प्ट में संपत्ति मानों को पास करने की आवश्यकता है और साथ ही archetype-metadat.xml में इसे बनाए रखना है, लेकिन यहां नाम में "।" प्रतीक के रूप में यह आपको मूल्यों को अद्यतन करने की अनुमति नहीं देता है।

यह Maven में प्रतिबंध prod.ex.version की तरह नाम का उपयोग नहीं करते हैं आप prod-पूर्व संस्करण

संबंधित मुद्दे