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.Resource
s.
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.FilterWrapper
s. These are:
- Interpolation with token ${ } and values from properties files,
<project>
/<build>
/<filters
,project.properties
andmavenSession.executionProperties
- Interpolation with token @ @ and values from properties files,
<project>
/<build>
/<filters
,project.properties
andmavenSession.executionProperties
- Interpolation with token ${ } and values from
mavenProject
interpolation - Interpolation with token @ @ and values from
mavenProject
interpolation
The values used for interpolation are stored in a Properties
object and are loaded in the following order:
- A
List
of 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
executionProperties
from 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.