Goal

Currently some plugins duplicates/modify classes coming the ressources plugin or build their own to handle (copy and filtering) resources.
A common component could provide a common way for all plugins which needs to filtering resources.

This component will apply filtering on a List of org.apache.maven.model.Resource.

A default List of FileUtils.FilterWrapper (see above) will be provided.

The component will not filtering some predefined file extensions (jpg,jpeg,gif,bmp,png). Note : you can easily add extra file extensions.

The issue is http://jira.codehaus.org/browse/MNG-3374.

Filtering

Some default FileUtils.FilterWrapper will be used :

  • interpolation with token ${ } and values from filters, project.filters, project.build.filters, pom.properties and mavenSession.executionProperties
  • interpolation with token @ @ and values from filters, project.filters, project.build.filters, pom.properties and mavenSession.executionProperties
  • interpolation with token ${ } and values from mavenProject interpolation

The values (Properties object) used for interpolation are loaded with the following order :

  • List of properties file ( the method has a parameter which accept a List of String -> path properties files )
  • pom.filters
  • pom.build.filters
  • pom.properties
  • mavenSession.executionProperties

NOTE : As it's a Properties object, last defined key/value pair wins .

NOTE : When building the global Properties object and reading the properties files defined the different filters, interpolation with the token ${ } is supported for this filters with a limited properties values coming from pom.properties and mavenSession.executionProperties (last wins too)

NOTE : currently in the resources plugin System.properties is used instead of mavenSession.executionProperties

NOTE : currently in the resources plugin  pom.properties wins on System.properties. This will be changed to this order pom.properties -> mavenSession.executionProperties

Some part has been implemented in the sandbox/shared (https://svn.apache.org/repos/asf/maven/sandbox/trunk/shared/maven-filtering/). The current war trunk use it.

A branch of the resources plugin use it too issue http://jira.codehaus.org/browse/MRESOURCES-56 (svn https://svn.apache.org/repos/asf/maven/plugins/branches/MRESOURCES-56/)

Votes

Please provide comments with your votes.
+1 : Olivier Lamy
+0 :
- 1 :

  • No labels