Apache Maven Filtering
This component has been built from the filtering process/code in Maven Resources Plugin.
The goal is to provide a shared component for all plugins that needs to filter resources.
MavenResourcesExecution
POM Interpolation
POM values will be interpolated only with expressions starting with pom or project (it's configurable). In previous versions something like ${foo.version} or ${version} was interpolated with the current POM version, but it won't be interpolated with a POM value any more.
Escaping Interpolation
It's possible now to define a String which will escape interpolation. \${java.home} will be interpolated to ${java.home}.
targetPath parameter
It also accepts absolute paths.
overwrite parameter
The parameter overwrite forces file copy even if the destination file is newer.
MavenResourcesFiltering
This component will apply filtering on a List of org.apache.maven.model.Resources.
If you want to use the default List of FileUtils.FilterWrapper (see below) you should use the method without the filterWrappers parameter.
The component will not filter a predefined set of file extensions (jpg, jpeg, gif, bmp, png).
Note: You can easily add extra file extensions.
MavenFileFilter
This component has a method which returns the default FileUtils.FilterWrappers. These are:
- Interpolation with token ${ } and values from properties files,
<project>/<build>/<filters,project.propertiesandmavenSession.executionProperties - Interpolation with token @ @ and values from properties files,
<project>/<build>/<filters,project.propertiesandmavenSession.executionProperties - Interpolation with token ${ } and values from
mavenProjectinterpolation - Interpolation with token @ @ and values from
mavenProjectinterpolation
The values used for interpolation are stored in a Properties object and are loaded in the following order:
- A
Listof properties files, provided as a parameter to the method - Filters defined in the
<build>/<filters>section of the POM - Properties defined in the
<properties>section of the POM - The
executionPropertiesfrom the currentMavenSession
Note: As it's a Properties object, the last defined key/value pair wins.
Note: When building the Properties object and reading the properties files that defines the different filters, interpolation with the token ${ } is supported for these filters with limited properties values coming from project.properties and mavenSession.executionProperties. The last wins here too.



