J'ai un projet multi-modules, comme celui-ci :
main-project/
module1/
module2/
sub-module1/
sub-module2/
sub-module3/
...
module3/
module4/
...
J'ai besoin de définir un ensemble de propriétés (qui dépendent de l'environnement sur lequel je veux libérer mon projet) dans Maven2. Je n'utiliserai pas <properties>
car il y a beaucoup de propriétés... Ainsi, j'utilise le Propriétés du plugin Maven2 .
Les fichiers de propriétés sont situés dans le répertoire main-project/
répertoire. Comment puis-je définir le bon répertoire dans le pom.xml principal, afin de spécifier à tous les enfants où trouver le fichier de propriétés ?
<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 ne mets que <file>env_${env}.properties</file>
alors, lorsque Maven2 compilera le premier module, il ne trouvera pas la balise main-project/env_dev.properties
fichier. Si je règle <file>../env_${env}.properties</file>
alors une erreur sera levée au niveau du parent, ou à tout niveau de sous-module...
2 votes
Il suffit d'utiliser
${maven.multiModuleProjectDirectory}