2012-02-29 15 views
91

मैं एक Maven परियोजना में एक माता पिता पोम है निर्माण के बिना माता पिता पोम स्थापित करें, इस संरचना के साथ:बाल मॉड्यूल

   parent 
       | 
     --------------- 
     |    | 
     child1  child2 

मैं स्थानीय रेपो में "जनक" की पोम स्थापित करने के लिए अनुमति देना चाहते हैं child1 निर्भरता में किए गए कुछ बदलावों को प्रबंधित करें प्रबंधन, लेकिन मैं नियमित "साफ इंस्टॉल" नहीं कर सकता क्योंकि "child2" टूट गया है और नहीं बनाया जाएगा।

मैवेन के साथ ऐसा करने का सही तरीका है (माता-पिता के पोम पर जाने और "child2" मॉड्यूल पर टिप्पणी करने के अलावा)।

उत्तर

136

mvn कमांड में '-N' विकल्प का उपयोग करें।

mvn -h से

:

एन, - गैर पुनरावर्ती उप-परियोजनाओं

+1

'-N' या '--non-recursive' विकल्प का अर्थ उप-परियोजनाओं में पुन: कार्य नहीं करना है। –

25

में recurse न करें Guillaume वास्तव में सही है और वह सही विकल्प है, वहीं मैं व्यक्तिगत रूप से सिफारिश करेंगे अपने माता-पिता को एक अलग मॉड्यूल के रूप में रखते हुए।

aggregator 
|- module1/ (extends parent) 
| |- pom.xml 
|- module2/ (extends parent) 
| |- pom.xml 
|- parent/ 
| |- pom.xml 
|- pom.xml 

इस तरह आप हमेशा अतिरिक्त विकल्प के बिना केवल माता पिता, mvn clean install साथ स्थापित कर सकते हैं:

मैं के लिए विरासत के रूप में निम्नानुसार होने के लिए सबसे अच्छा तरीका लगता है।

आप एग्रीगेटर के बाहर माता-पिता भी हो सकते हैं ताकि आप इसे और अधिक परियोजनाओं के बीच फिर से उपयोग कर सकें।

माता-पिता और एग्रीगेटर को दो अलग-अलग चीजों के रूप में रखने के कई फायदे हैं। लेकिन अंत में, आप चुनते हैं कि आपके प्रोजेक्ट/पर्यावरण के लिए सबसे अच्छा क्या है।

+0

मैंने इस मुद्दे के साथ घंटों तक संघर्ष किया, और पाया कि कुछ परियोजनाएं इस तरह से कर रही हैं, जैसे अपाचे स्लिंग, जैकब्रिट और आर्टिफैक्टरी। – accuya

+0

बैच बिल्डिंग (बाल मॉड्यूल) से यह अलग मैवेन मॉड्यूल विरासत (निर्भरता, गुण आदि)। –

+3

क्या यह एक सर्वोत्तम अभ्यास माना जाता है? इस दृष्टिकोण पर कोई ब्लॉग या अन्य? – ArtB