2015-01-26 9 views
7

मेरे पास एक बहु-मॉड्यूल प्रोजेक्ट है जिसमें सभी मॉड्यूल और एग्रीगेटर/बिल्ड पोम के लिए एक सामान्य पेरेंट पोम है। मैं अपने सभी मॉड्यूल के संस्करणों को अद्यतन/सेट करने के लिए मेवेन-संस्करण-प्लगइन का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह बाल मॉड्यूल को छोड़ देता रहता है।बाल मॉड्यूल संस्करण सेट करने के लिए संस्करण-मेवेन-प्लगइन का उपयोग कैसे करें?

परियोजना लेआउट: - आम/pom.xml (पोम निर्माण) - आम/superpom/pom.xml (मूल पोम) - module1/pom.xml (module1 पोम) - module2/pom.xml (module2 पोम)

आम/pom.xml:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.bic</groupId> 
    <artifactId>builder</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>Builder</name> 

    <modules> 
     <module>../module1</module> 

     <!-- POM Component Versionning --> 
     <module>../module2</module> 
    </modules> 
<build> 
    <plugins> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>versions-maven-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 

    </plugins> 
</build> 
</project> 

मैं निर्माण पोम के लिए प्लगइन (सामान्य/pom.xml जोड़ने की कोशिश की है) और फिर बुला:

mvn versions:set -DnewVersion=999999 

Maven सब रंगमंच की सामग्री यह बच्चे मॉड्यूल में पाया सूचीबद्ध करता है, तो मैं पता है कि यह उन सब को ठीक से पार्स करने है:

Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module1, project.groupId=com.bic, project.parent.artifactId=common} 
Props: {project.version=50, project.parent.version=1.0-SNAPSHOT, project.parent.groupId=com.bic, project.artifactId=module2, project.groupId=com.bic, project.parent.artifactId=common} 

लेकिन यह वास्तव में मॉड्यूल poms में से किसी के संस्करणों है, जो है क्या अपडेट नहीं करता मैं करना चाहता हूँ

[INFO] Reactor Summary: 
[INFO] 
[INFO] Module1 ........................................ SKIPPED 
[INFO] Module2 ........................................ SKIPPED 
[INFO] Builder ........................................ SUCCESS [ 2.037 s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.975 s 
[INFO] Finished at: 2015-01-26T11:48:11-05:00 
[INFO] Final Memory: 24M/44M 
[INFO] ------------------------------------------------------------------------ 

और update-child-modules लक्ष्य मुझे explictly बच्चे मॉड्यूल के लिए एक संस्करण संख्या निर्धारित करने की अनुमति नहीं देता है।

क्या मैं प्लगइन का गलत इस्तेमाल कर रहा हूं?

+0

@ मिस्टरियन - मैंने पहले से ही उस पोस्ट को पढ़ लिया था, और यदि आप पोस्ट को देखते हैं, तो अभी भी मेरे मुद्दे का कोई स्पष्ट उत्तर नहीं है। मुझे अभी भी यकीन नहीं है कि अपडेट करने के लिए बाल मॉड्यूल कैसे प्राप्त करें। –

उत्तर

2

संस्करणों-मैवेन-प्लगइन का उपयोग करके इसे कैसे करना है, यह पता नहीं लगा सका, इसलिए मैंने इसे मैन्युअल रूप से कर दिया।

find . -name "pom.xml" -exec mvn versions:set -DnewVersion=1.0.3-SNAPSHOT -f {} \; 

यह मेरे बच्चे मॉड्यूल के सभी पोम्स ढूंढने और प्रत्येक में संस्करण संख्या को अपडेट करने के लिए समाप्त हुआ। माता-पिता पर प्लगइन का उपयोग करने से निश्चित रूप से धीमा, क्योंकि इसे करने के लिए डिज़ाइन किया गया था, लेकिन कार्यात्मक।

0

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

जड़ पोम एग्रीगेटर और सूचियों माता पिता, module1, और मॉड्यूल के रूप module2 है:

DANIJOH2-M-V0MA:test danijoh2$ ls 
module1 module2 parent pom.xml 

जड़ एग्रीगेटर पोम, module1, और सभी module2 अपने माता पिता पोम के रूप में माता-पिता/pom.xml को देखें। माता-पिता में ले जाएँ और संस्करणों चलाएँ: सेट लक्ष्य:

DANIJOH2-M-V0MA:test danijoh2$ cd parent 
DANIJOH2-M-V0MA:parent danijoh2$ ls 
pom.xml 

DANIJOH2-M-V0MA:parent danijoh2$ mvn org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=1.0.0 -DgenerateBackupPoms=false 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building parent 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- versions-maven-plugin:2.1:set (default-cli) @ parent --- 
[INFO] Searching for local aggregator root... 
[INFO] Local aggregation root: /Users/danijoh2/Desktop/test 
[INFO] Processing com.cisco.dan.test:parent 
[INFO]  Updating project com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:aggregator 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:aggregator 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:module1 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:module1 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO] 
[INFO] Processing com.cisco.dan.test:module2 
[INFO]  Updating parent com.cisco.dan.test:parent 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
[INFO]  Updating project com.cisco.dan.test:module2 
[INFO]   from version 1.0.0-SNAPSHOT to 1.0.0 
0

एक समाधान था introduced प्लगइन का संस्करण 2.5 संस्करणों-Maven-प्लगइन

mvn versions:set -DnewVersion=1.6-SNAPSHOT -DprocessAllModules=true 

में या मेरे जैसे आप संस्करण के लिए मजबूर करने की जरूरत है :

mvn org.codehaus.mojo:versions-maven-plugin:2.5:set -DnewVersion=1.6-SNAPSHOT -DprocessAllModules=true 
संबंधित मुद्दे