2015-01-26 5 views
7

Ho un progetto multi-modulo con un comune padre comune a tutti i moduli e un aggregatore/build pom. Sto cercando di usare il plugin-versioni-maven per aggiornare/impostare le versioni di tutti i miei moduli, ma continua a saltare i moduli figlio.Come utilizzare versioni-maven-plugin per impostare le versioni del modulo figlio?

progetto di allestimento: - comune/pom.xml (build POM) - comune/superpom/pom.xml (POM genitore) - module1/pom.xml (Module1 POM) - module2/pom.xml (Module2 pom)

comune/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> 

ho provato ad aggiungere il plugin per il pom build (comune/pom.xml) e quindi chiamando:

mvn versions:set -DnewVersion=999999 

Maven sono elencati tutti gli oggetti di scena che ha trovato nei moduli bambino, quindi so che è l'analisi a tutti correttamente:

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} 

, ma in realtà non aggiorna le versioni di uno qualsiasi dei pon modulo, che è ciò che Sto cercando di fare.

[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] ------------------------------------------------------------------------ 

E l'obiettivo update-child-modules non mi permette di impostare esplicitamente un numero di versione per i moduli bambino.

Sto usando il plugin in modo errato?

+0

@Mysterion - Avevo già letto quel post SO, e se si nota il post, non c'è ancora una risposta chiara al mio problema. Non sono ancora sicuro di come aggiornare i moduli figlio. –

risposta

2

Impossibile capire come farlo usando direttamente le versioni -maven-plugin, così ho finito per farlo manualmente.

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

Questa finito per trovare tutti i pon dei miei moduli bambino e aggiornare il numero di versione in ciascuno. Decisamente più lento dell'utilizzo del plugin sul genitore come è stato progettato per essere fatto, ma funzionale.

0

Questo è un po 'in ritardo per la festa, ma ho appena trovato la risposta. È necessario eseguire le versioni: impostare direttamente l'obiettivo sul progetto principale. Avrà cura di cercare un aggregatore POM nelle vicinanze (probabilmente cerca solo una directory, ma non sono positivo) e aggiornerà il genitore, l'aggregatore e tutti i moduli figlio come previsto.

Il POM radice è l'aggregatore e liste genitore, module1 e module2 come moduli:

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

La radice aggregatore POM, module1 e module2 riferiscono tutti genitore/pom.xml come genitore POM. Spostatevi nella genitore ed eseguire le versioni: impostare obiettivo:

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

Una soluzione era introduced nella versione 2.5 del plug-versioni-maven-plugin

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

o se come me avete bisogno di forzare la versione :

mvn org.codehaus.mojo:versions-maven-plugin:2.5:set -DnewVersion=1.6-SNAPSHOT -DprocessAllModules=true