Dans les projets multi-modules maven où je souhaite que chacun des modules garde toujours la même version que le parent, j'ai généralement effectué les opérations suivantes dans le fichier pom.xml du module:
<parent>
<groupId>com.groupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.1-SNAPSHOT</version>
</parent>
<groupId>com.groupId</groupId>
<artifactId>artifactId</artifactId>
<packaging>jar</packaging>
<version>${project.parent.version}</version>
<name>name</name>
Depuis que j'ai commencé à utiliser maven 3.0-alpha-5, je reçois l'avertissement suivant.
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.groupid.artifactId:name:jar:1.1-SNAPSHOT
[WARNING] 'version' contains an expression but should be a constant. @ com.groupid.artifactId:name::${project.parent.version}, /Users/whaley/path/to/project/child/pom.xml
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
Je suis curieux de savoir quel est le problème, le cas échéant, lorsque vous associez la version d'un module à la version parent. Ou s'agit-il d'un avertissement général lorsqu'une expression, qu'elle soit project.parent.version ou non, est utilisée pour l'élément version.
Je suis curieux de savoir quel est le problème, le cas échéant, lorsque vous associez la version d'un module à la version parent. Ou s'agit-il d'un avertissement général lorsqu'une expression, qu'elle soit project.parent.version ou non, est utilisée pour l'élément version.
Eh bien, ce serait facile à tester. Parce que j'étais curieux, je l'ai juste fait pour vous en utilisant le pom suivant:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>parent</artifactId>
<groupId>com.mycompany</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycompany</groupId>
<artifactId>module</artifactId>
<version>${myversion}</version>
<name>module</name>
<url>http://maven.Apache.org</url>
<properties>
<myversion>1.0-SNAPSHOT</myversion>
</properties>
...
</project>
Et maven se plaint effectivement:
[WARNING] 'version' contains an expression but should be a constant. @ com.mycompany:module:${myversion}, /home/Pascal/Projects/maven-maven3-testcase/module/pom.xml
Pour être honnête, je pense que maven est juste ici, il n’a pas de sens d’utiliser une propriété pour le <version>
element (du moins pas pour project.version) et c’est sympa d’avoir des maven qui se plaignent.
Et si vous voulez utiliser la version de pom parent dans des sous-modules, supprimez simplement le <version>
tag des enfants poms, ils hériteront de la version du parent. Ce que vous faites actuellement est inutile.