Details
-
Type:
New Feature
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.3
-
Fix Version/s: None
-
Component/s: install:install
-
Labels:None
-
Environment:independent
-
Testcase included:yes
-
Patch Submitted:Yes
-
Number of attachments :
Description
When maven installs an artifact, it's pom is also copied into the artifact's directory. Unfortunately, if the pom contains a property reference (e.g. $
{myprop}), this will not be replaced upon copying the pom file.
I've created a patch for the install plugin that switches on property filtering by setting a mojo parameter "filteringEnabled". Since this defaults to "false", backward compatibility is kept 100%.
Some implementation notes:
- the dirty work is done in FilteredProjectArtifactMetadata.java, the property resolution code has been inspired by ResourcesMojo.
- I've added a unit test, that replaces $
{basedir}
with the value of a system property.
- since "svn diff" does not handle binary files, src/test/resources/unit/basic-install-test-with-filtering/target/maven-install-test-1.0-SNAPSHOT.jar is not included in the patch. This file is the same as
src/test/resources/unit/basic-install-test/target/maven-install-test-1.0-SNAPSHOT.jar
Since my knowledge of Maven API is more than limited, there might be a more elegant way to provide this feature ... but it works! I'd be happy to see this in a future release of maven.
Issue Links
Activity
Samuel Vetsch
made changes -
Stefan Armbruster
made changes -
| Attachment | MNG-maven-install.patch [ 34617 ] |
Henrik Brautaset Aronsen
made changes -
Benjamin Bentmann
made changes -
Dennis Lundberg
made changes -
| Component/s | install:install [ 13801 ] |