बाल मॉड्यूल के निर्माण के बिना माता-पिता पोम स्थापित करें


115

मेरे पास एक मावेन परियोजना में एक माता-पिता पोम है, इस संरचना के साथ:

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

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

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

जवाबों:


191

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

से mvn -h:

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


1
'-N' या 'गन-रिकर्सिव' विकल्प का मतलब उप-परियोजनाओं में पुनरावृत्ति नहीं करना है।
एसटीबी लैंड

36

जबकि गिलौम वास्तव में सही है और यह सही विकल्प है, मैं व्यक्तिगत रूप से आपके माता-पिता को एक अलग मॉड्यूल के रूप में रखने की सलाह दूंगा।

मुझे विरासत के लिए सबसे अच्छा तरीका इस प्रकार है:

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

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

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

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


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

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

4
क्या यह सबसे अच्छा अभ्यास माना जाता है? इस दृष्टिकोण पर कोई ब्लॉग या अन्य?
स्लेज

1
@ArtB क्या आपने इस बीच इस तरह के एक लेख पर ठोकर खाई है?
टॉमिस्लाव नैक-अल्फेयरविच

4
@MaximilianSchulz: कोई सही दुनिया नहीं है, जैसा कि वे कहते हैं ... यह करने का केवल एक विकल्प है।
carlspring
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.