2009-10-23 10 views
8

से एकल मॉड्यूल बनाएं क्या यह संभव है?multimodule pom

पर्यावरण: मल्टीमुड्यूल पोम में 3 मॉड्यूल होते हैं: मिमी 1, मिमी 2, मिमी 3। मॉड्यूल mm2 में निर्भरता के रूप में mm1 है। किसी भी त्रुटि के बिना पैरेंट पोम बनाना संभव है।

प्रश्न: क्या स्थानीय भंडार में mm1 स्थापित किए बिना एकल मॉड्यूल mm2 (यानी, mm2 बेस निर्देशिका से maven चलाएं) बनाना संभव है?

धन्यवाद।

+0

आप Rodolphe हैं? क्या आपके पास नि: शुल्क है? : डी –

+0

क्षमा करें, क्या? :) – igorp1024

उत्तर

3

स्वचालित स्थापना के बिना, लेकिन केवल चुनिंदा परियोजनाओं का निर्माण करना संभव है। आपको बहु मॉड्यूल बिल्ड करने की आवश्यकता है (मुझे लगता है कि आप करते हैं)। रिएक्टर मोड में प्रत्येक कमांड को रिएक्टर की रूट से चलाने की आवश्यकता है।

तो अपने मामले में

:

mvn reactor:make -Dmake.folders=mm2

आप मिमी 2 मॉड्यूल और मॉड्यूल का निर्माण इस मामले जिस पर यह निर्भर करता है (MM1) में।

उपयोगी लिंक्स:

पुस्तक उदाहरण से मैं केवल परियोजना का निर्माण जारी रहती है और उसकी निर्भरता परियोजना मॉडल।दूसरों परियोजनाओं mvn reactor:make -Dmake.folders=sample-persist

alt text http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png

अन्य उपयोगी कमांड के साथ अछूता है reactor:make-dependents जो परियोजनाओं कि एक्स पर निर्भर निर्माण

0

यह मैवेन 2 की निर्भरताओं के सिद्धांत के खिलाफ चला जाता है। वास्तव में ऐसा करने में क्या रूचि है?

हालांकि, हम एक system निर्भरता के रूप में मिमी 2 की MM1 निर्भरता को परिभाषित करने की कल्पना कर सकते हैं:

<dependency> 
    <groupId>...</groupId> 
    <artifactId>mm1</artifactId> 
    <version>...</version> 
    <scope>system</scope> 
    <systemPath>../mm1/target/</systemPath> 
</dependency> 
+0

यह मेरी आंखें खून बह रहा है :) –

14

मुझे यकीन है कि क्या आप "स्थानीय भंडार में MM1 की स्थापना के बिना" द्वारा बिल्कुल मतलब यह नहीं कर रहा हूँ। क्या आपका मतलब पहले एमएम 2 बनाने या कभी नहीं करना है?

संदेह में, हो सकता है नए निर्माण के लिए विकल्पों Maven Tips and Tricks: Advanced Reactor Options ब्लॉग पोस्ट में घोषणा में से एक में मदद कर सकते हैं:

Maven 2.1 रिलीज के साथ शुरू, नए Maven कमांड लाइन विकल्प है जो आप फेरबदल कर सकते हैं जिस तरह से मैवेन मल्टीमुड्यूल परियोजनाओं का निर्माण करेगा। इन नए विकल्प हैं:

-rf, --resume-from 
     Resume reactor from specified project 
-pl, --projects 
     Build specified reactor projects instead of all projects 
-am, --also-make 
     If project list is specified, also build projects required by the list 
-amd, --also-make-dependents 
     If project list is specified, also build projects that depend on projects on the list 

मैं विशेष रूप से -pl और -am विकल्प के लिए सोच रहा था। मॉड्यूल के एक सबसेट का निर्माण करने के लिए, हालांकि, मुझे यकीन है कि इससे आपके प्रश्न का (जो मेरे लिए पूरी तरह से स्पष्ट नहीं है) का जवाब देता नहीं कर रहा हूँ रूट निर्देशिका

$ mvn --projects mm2 --also-make install 

से निम्नलिखित चलाते हैं।

+0

+1 अब मैं देखता हूं कि मैंने आपकी पोस्ट को सावधानी से नहीं पढ़ा और लगभग उसी उत्तर को लिख दिया। – cetnar

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