Apache Maven 过滤
该组件是根据 Maven 资源插件中的过滤过程/代码构建的。
目标是为所有需要过滤资源的插件提供一个共享组件。
Maven资源执行
POM 插值
POM 值将仅使用以pom或project开头的表达式进行插值(它是可配置的)。在以前的版本中,诸如 ${foo.version} 或 ${version} 之类的东西是用当前 POM 版本进行插值的,但它不会再用 POM 值进行插值。
转义插值
现在可以定义一个可以避免插值的字符串。${java.home} 将被插值到 ${java.home}。
覆盖参数
即使目标文件较新,参数overwrite也会强制复制文件。
Maven资源过滤
该组件将对org.apache.maven.model.Resource列表应用过滤。
如果要使用 FileUtils.FilterWrapper 的默认列表(见下文),则应使用不带filterWrappers参数的方法。
该组件不会过滤一组预定义的文件扩展名(jpg、jpeg、gif、bmp、png)。
注意:您可以轻松添加额外的文件扩展名。
Maven文件过滤器
该组件有一个返回默认FileUtils.FilterWrapper的方法。这些是:
- 使用令牌 ${ } 和属性文件中的值进行插值,<project> / <build> / <filters,project.properties和mavenSession.executionProperties
- 使用标记 @@ 和属性文件中的值进行插值,<project> / <build> / <filters,project.properties和mavenSession.executionProperties
- 使用令牌 ${ } 和来自mavenProject插值的值进行插值
- 使用标记 @@ 和来自mavenProject插值的值进行插值
用于插值的值存储在Properties对象中,并按以下顺序加载:
- 属性文件列表,作为方法的参数提供
- 在 POM 的<build> / <filters>部分中定义的过滤器
- 在 POM 的<properties>部分中定义的属性
- 当前MavenSession的executionProperties
注意:由于它是一个属性对象,最后定义的键/值对获胜。
注意:在构建Properties对象并读取定义不同过滤器的属性文件时,这些过滤器支持使用令牌 ${ } 进行插值,这些过滤器具有来自project.properties和mavenSession.executionProperties的有限属性值。最后的胜利也在这里。