I have a multi-modules project, like this one:
main-project/
module1/
module2/
sub-module1/
sub-module2/
sub-module3/
...
module3/
module4/
...
I need to define a set of properties (that are dependent of the environment on which I want to release my project) in Maven2.
I will not use <properties>
as there is lots of properties...
Thus, I use the Properties Maven2 plugin.
The properties files are located in the main-project/
directory.
How can I set the correct directory in the main pom.xml, in order to specify to any children where to find the properties file?
<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>
If I set only <file>env_${env}.properties</file>
, then when Maven2 compiles the first module, it will not find the main-project/env_dev.properties
file. If I set <file>../env_${env}.properties</file>
, then an error will be raised at the parent level, or at any sub-module level...
Try setting a property in each pom to find the main project directory.
In the parent:
<properties>
<main.basedir>${project.basedir}</main.basedir>
</properties>
In the children:
<properties>
<main.basedir>${project.parent.basedir}</main.basedir>
</properties>
In the grandchildren:
<properties>
<main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>