Bonjour,

Mon application est composée de 2 parties : un jar et un war qui font l'objet de deux modules Maven et d'un module parent comme expliqué sur cette page : http://maven.apache.org/guides/intro...o-the-pom.html.

Ma structure de dossiers est une structure à plat (i.e. le POM parent est au même niveau que les POM enfants) :
app-parent
my-app
my-webapp

Voici le code du POM parent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
...
  <groupId>com.mycompany.app</groupId>
  <artifactId>app</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>
 
  <modules>
    <module>../my-app</module>
    <module>../my-webapp</module>
  </modules>
...
Lorsque j'effectue une nouvelle release de mon appli, je souhaiterais ne pas avoir à mettre à jour la version du POM parent dans les POM enfants.
C'est pourquoi j'envisageais d'utiliser la variable ${project.version} comme expliqué dans le paragraphe "Project Interpolation and Variables" de la page web déjà indiquée.

Par exemple voici, le code du pom.xml de my-app :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
...
  <parent>
    <groupId>com.mycompany.app</groupId>
    <artifactId>app</artifactId>
    <version>${project.version}</version>
    <relativePath>../app-parent</relativePath>
  </parent>
 
  <!-- Pas de version spécifiée car héritée du parent -->
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
...
Or, avec cette configuration, lorsque je lance un mvn clean install, Maven sort l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Non-resolvable parent POM: Could not transfer artifact com.mycompany.app:app:pom:${project.version}
Il semble donc que la variable ${project.version} ne soit pas interprétée au préalable et sa valeur injectée dans le POM enfant.

Auriez-vous une solution pour factoriser la déclaration de la version de mon application (et donc de tous les modules sous-jacents) au niveau du POM parent uniquement ?

Merci d'avance pour votre aide