Bonjour,

J'ai un projet multi-modules (à plusieurs niveaux), dont la structure est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
main-project/
    module1/
    module2/
        sous-module1/
        sous-module2/
        sous-module3/
        ...
    module3/
    module4/
    ...
J'ai besoin de définir un ensemble de propriétés (qui sont dépendantes de l'environnement destiné à la release) à Maven. Je ne souhaite pas utiliser les <properties> directement, vu que j'ai pas mal de propriétés à définir. De fait, j'utilise le plugin Properties de Codehaus, qui permet de lire un fichier properties...
Ce fichier properties se situe au niveau du répertoire racine, à savoir main-project.
Mon souci, c'est que je n'arrive pas à lui indiquer un chemin d'accès qui soit valable pour chaque module et sous-module.
Mon pom :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>???/env_${env}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>
Si je définis <file>env_${env}.properties</file>, alors le plugin Properties va réussir à trouver le fichier quand Maven2 construira le pom parent, mais dès que l'on passe à un module, il ne le trouvera plus !
Pareillement, si je mets <file>../env_${env}.properties</file>, alors si c'est bon pour les modules, ce ne sera pas bon pour le pom parent ou encore les sous-modules...

Donc j'ai 2 options :

  • Soit j'arrive à définir une propriété pointant toujours sur le répertoire basedir du pom principal
  • Soit je trouve une autre solution pour charger ces propriétés...

Une idée ?