La solution la plus simple que je connaisse est d'utiliser une propriété pour une version plutôt que littérale en la définissant dans le (s) fichier (s) pom. Ceci est disponible depuis Maven 3.5.0.
Vous pouvez le faire comme ceci:
<project ...>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-parent</artifactId>
<name>First CI Friendly</name>
<version>${revision}</version>
...
</project>
Maintenant, vous pouvez le construire via:
mvn -Drevision=1.2.0-SNAPSHOT clean package
Mais cela signifierait pour définir la révision chaque fois que vous appelez Maven via la ligne de commande qui est un peu encombrant. Donc vous pouvez utiliser la solution via le fichier .mvn/maven.config
qui contient:
-Dévision = 1.2.0-SNAPSHOT
Vous pouvez définir la propriété dans le Maven se pom comme ceci:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-parent</artifactId>
<name>First CI Friendly</name>
<version>${revision}</version>
...
<properties>
<revision>1.0.0-SNAPSHOT</revision>
</properties>
</project>
Cela signifie que vous avez seulement un seul endroit où la version est définie et non dans le module tous les
etc.
une configuration du module fonctionne aussi plusieurs comme celui-ci où un enfant d'un parent ci-dessus pourrait ressembler à ceci:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-parent</artifactId>
<version>${revision}</version>
</parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-child</artifactId>
...
</project>
mais sachez que vous devez utiliser flatten-maven-plugin dans les cas où vous voulez deploy such artifacts to a repository ou voulez simplement faire mvn install
. Cela doit ressembler à ceci:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-parent</artifactId>
<name>First CI Friendly</name>
<version>${revision}</version>
...
<properties>
<revision>1.0.0-SNAPSHOT</revision>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<updatePomFile>true</updatePomFile>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<modules>
<module>child1</module>
..
</modules>
</project>
Cela signifie à la fin vous avez une seule ligne où la version de votre projet est défini et qui devrait permettre de réduire considérablement cette fusion des problèmes.
Veuillez lire attentivement la documentation!
Veuillez utiliser seulement ${revision}
, ${changelist}
ou ${sha1}
Les autres propriétés ne sont pas supportées pour l'instant.
Êtes-vous le seul à travailler sur la branche "develop"? –