404 votes

Mise à jour des numéros de version des modules dans un projet Maven à plusieurs modules

J'ai un projet multi-module maven. Nous avons l'intention de mettre à jour tous ces modules ensemble. Mais pour le moment, je termine en version codée en dur dans chacun des modules pom.xml ci-dessous

 <parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>
 

et le module parent principal a la configuration ci-dessous

 <modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-application</artifactId>
<version>2.50.0.g</version>
<packaging>pom</packaging>
 

775voto

Sean Patrick Floyd Points 109428

Utilisez versions:set du plug-in versions-maven :

 mvn versions:set -DnewVersion=2.50.1-SNAPSHOT
 

Il ajustera toutes les versions de pom, versions de parent et versions de dépendance dans un projet multi-module.

Si vous avez fait une erreur, faites

 mvn versions:revert
 

après ou

 mvn versions:commit
 

si vous êtes satisfait des résultats.

28voto

Nishant Points 22758

Vous voudrez peut-être examiner la version du plug-in de publication de Maven : but de la mise à jour-versions . Il mettra à jour la version du parent ainsi que tous les modules sous celui-ci.


Mise à jour: Veuillez noter que ce qui précède est le plug-in de la version. Si vous ne diffusez pas, vous pouvez utiliser versions:set

 mvn versions:set -DnewVersion=1.2.3-SNAPSHOT
 

11voto

khmarbaise Points 28405

Je vous encourage à lire le Livre sur Maven multi-module (réacteur) construit.

Je voulais dire en particulier les points suivants:

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>

doit être changé. Ici, prenez soin de la non défini uniquement sur la version parent, il est défini.

<modelVersion>4.0.0</modelVersion>

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>

Ce est un meilleur lien.

4voto

Jon Points 4349

versions: update-child-modules ressemble à ce que vous recherchez. Vous pouvez faire des versions: définies comme indiqué, mais il s'agit d'un moyen léger de mettre à jour les numéros de version parent. Pour les modules enfants, j'estime que vous devez supprimer les définitions <version> , car elles hériteront du numéro de version du module parent.

4voto

murali Points 1

le mieux est que, puisque vous avez l’intention de regrouper vos modules, vous pouvez spécifier dependencyMangement dans le plus externe pom.xml (module parent). Il contrôle la version et le nom du groupe. Dans votre module individuel, il vous suffit de spécifier l'artefactId dans votre fichier pom.xml. Il prendra la version du fichier parent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X