Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.3.9, 3.5.0
-
None
-
None
-
None
Description
Hi,
I recently discovered a strange behaviour dynamic property replacement while using Maven's Plugin Prefix Resolution.
The original cause was reported to a project that I currently maintain and basically extract's repository information from git and inject them back as properties into the maven project.
The original report was that one if generated properties does not get resolved when it is getting used as a configuration parameter while executing mvn appengine:deploy.
To be able to reproduce the issue I crafted a sample project that contain's of two Mojo's to simulate this behaviour.
- The first Mojo BuildInjectPropertyMojo will inject a Property sample.generated to the Maven project
- The second Mojo DeployMojo basically takes an arbitrary argument and prints it to the console. To reproduce the issue the Parameter needs to defined as followed
<some.exampleParameter>${sample.generated}</some.exampleParameter>
Observations:
- When building with
mvn clean package
the injected Property sample.generated will be printed by the Mojo as well as from antrun correctly.
- When building with
mvn com.test.plugins:testPlugin:deployMojo
the injected Property sample.generated will be printed by antrun correctly but will show up as null for the mojo execution.
- When building with
mvn com.test.plugins:testPlugin:buildInjectPropertyMojo antrun:run com.test.plugins:testPlugin:deployMojo
he injected Property sample.generated will be printed by the Mojo as well as from antrun correctly.
To use the attached example one need to install it first
mvn clean install
and remove the comments inside the pom.xml that are annotated with COMMENT THIS IN TO REPRODUCE
Please note that the execution of mvn appengine:deploy is per offical guideline of this tool:
https://cloud.google.com/appengine/docs/standard/java/tools/using-maven#deploying_your_application