Comment utiliser versions-maven-plugin pour définir les versions de modules enfants?

J’ai un projet multi-module avec un pom parent commun à tous les modules et un agrégateur / build pom. J’essaie d’utiliser le plugin mavenversions-plugin pour mettre à jour / définir les versions de tous mes modules, mais il continue de sauter les modules enfants.

Présentation du projet: – common / pom.xml (build pom) – common / superpom / pom.xml (parent pom) – module1 / pom.xml (module1 pom) – module2 / pom.xml (module2 pom)

common / pom.xml:

 4.0.0 com.bic builder 1.0-SNAPSHOT pom Builder  ../module1  ../module2     org.codehaus.mojo versions-maven-plugin 2.1     

J’ai essayé d’append le plugin au build pom (common / pom.xml) puis d’appeler:

 mvn versions:set -DnewVersion=999999 

Maven liste tous les accessoires trouvés dans les modules enfants, donc je sais que tous les parsingnt correctement:

 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} 

mais il ne met pas réellement à jour les versions de l’un des modules poms, ce que je cherche à faire.

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

Et l’objective update-child-modules ne me permet pas de définir explicitement un numéro de version pour les modules enfants.

Est-ce que j’utilise le plugin de manière incorrecte?

Impossible de comprendre comment utiliser directement le plug-in versions-maven-plugin, j’ai donc fini par le faire manuellement.

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

Cela a fini par trouver tous les poms de mes modules enfants et mettre à jour le numéro de version dans chacun. Certainement plus lent que d’utiliser le plugin sur le parent tel qu’il a été conçu, mais fonctionnel.

C’est un peu tard pour la fête, mais je viens de trouver la réponse. Vous devez exécuter les versions: définir l’objective directement sur le projet parent. Il veillera à rechercher un POM agrégateur à proximité (probablement un seul répertoire, mais je ne suis pas positif), et mettra à jour le parent, l’agrégateur et tous les modules enfants exactement comme vous le souhaitez.

Le POM racine est l’agrégateur et répertorie les parents, module1 et module2 en tant que modules:

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

L’agrégateur racine POM, module1 et module2 font tous référence à parent / pom.xml en tant que POM parent. Déplacez-vous dans le parent et exécutez les versions: set goal:

 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 

Une solution a été introduite dans la version 2.5 du plugin versions-maven-plugin

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

ou si comme moi vous devez forcer la version:

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