प्रोफाइल के साथ इसे कार्यान्वित करने के लिए, आप दो प्रोफाइल, एक <activeByDefault>
का उपयोग सभी मॉड्यूल के साथ और केवल वांछित मॉड्यूल के साथ कर सकते हैं। कुछ इस तरह:
<profiles>
<profile>
<id>all</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>module-1</module>
...
<module>module-n</module>
</modules>
</profile>
<profile>
<id>module-2</id>
<modules>
<module>module-2</module>
</modules>
</profile>
<profiles>
और फिर इस तरह इसे कहते:
mvn -Pmodule-2 package
दो बातें यहां गौर करने योग्य
- आप एक "डिफ़ॉल्ट में पोम से
<modules>
बढ़ने की जरूरत है "प्रोफाइल (क्योंकि प्रोफ़ाइल से <modules>
केवल योजक हैं, वे पीओएम में घोषित मॉड्यूल को छिपाते नहीं हैं)।
- इसे
<activeByDefault>
के रूप में चिह्नित करके, "डिफ़ॉल्ट" प्रोफ़ाइल चुना जाएगा यदि कुछ और सक्रिय नहीं है लेकिन कुछ और है तो निष्क्रिय हो गया है।
एक भी मॉड्यूल के नाम parametrize और संपत्ति के रूप में इसे पारित कर सकते हैं:
<profiles>
...
<profile>
<id>module-x</id>
<activation>
<property>
<name>module-name</name>
</property>
</activation>
<modules>
<module>${module-name}</module>
</modules>
</profile>
<profiles>
और इस तरह Maven आह्वान:
mvn -Dmodule-name=module-2 package
लेकिन यह एक गरीब कार्यान्वयन IMHO है, मैं -pl
"उन्नत" रिएक्टर विकल्प (कम xml, अधिक शक्ति और लचीलापन) पसंद करें:
mvn -pl module-2 package
स्रोत
2010-03-08 13:14:07
@ पास्कल थिवेन्ट बस शानदार .. मुझे नहीं पता कि क्या कहना है .. धन्यवाद एम 8, जब आप मेवेन – ant
पर आते हैं तो आप किसी के लिए दूसरे नहीं हैं। मैं सहमत हूं कि @ पास्कल एक मेवेन प्रतिभा है। मैं आवाज भी जोड़ूंगा कि एकाधिक प्रोफाइल कॉन्फ़िगर करने से रिएक्टर बिल्ड का उपयोग करना क्लीनर है। –