I would like to mention I am relatively new in Maven configurations.
My situation:
- I use Maven 3.0.5 to build J2E application
- the application is deployed in four different environments: local, dev, test and prod
- I use maven profiles to configure environment-specific configurations
- I have defined these configurations in
properties
files in the file system.
This is the file system for those:
<my-project-root>
---profiles
------local
---------app.properties
------dev
---------app.properties
------test
---------app.properties
I load the corresponding property file with the following logic in my pom.xml
:
<profiles>
<profile>
<id>local</id>
<!-- The development profile is active by default -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>local</build.profile.id>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
</properties>
</profile>
</profiles>
<build>
<finalName>MyProject</finalName>
<plugins>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>profiles/${build.profile.id}</directory>
</resource>
</resources>
</build>
With this configuration I can use the respective properties for my current profile almost everywhere. Everywhere, but the <plugins>
section. I would pretty much like to load e.g, my database url or credentials from such properties files, but if I include them in the app.properties
they are not evaluated in the plugins section (e.g. I get value of ${endpoint}
as database endpoint).
How do I get the properties loaded from files for the profile accessible in the <plugins>
section?
PS: Yes, if I add those properties directly in the pom.xml
as properties under <profiles>
tag, they are accessible, but I would rather keep my passwords off the pom.