Apache Maven 过滤

该组件是根据 Maven 资源插件中的过滤过程/代码构建的。

目标是为所有需要过滤资源的插件提供一个共享组件。

Maven资源执行

POM 插值

POM 值将仅使用以pomproject开头的表达式进行插值(它是可配置的)。在以前的版本中,诸如 ${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> / <filtersproject.propertiesmavenSession.executionProperties
  • 使用标记 @@ 和属性文件中的值进行插值,<project> / <build> / <filtersproject.propertiesmavenSession.executionProperties
  • 使用令牌 ${ } 和来自mavenProject插值的值进行插值
  • 使用标记 @@ 和来自mavenProject插值的值进行插值

用于插值的值存储在Properties对象中,并按以下顺序加载:

  • 属性文件列表,作为方法的参数提供
  • 在 POM 的<build> / <filters>部分中定义的过滤器
  • 在 POM 的<properties>部分中定义的属性
  • 当前MavenSessionexecutionProperties

注意:由于它是一个属性对象,最后定义的键/值对获胜。

注意:在构建Properties对象并读取定义不同过滤器的属性文件时,这些过滤器支持使用令牌 ${ } 进行插值,这些过滤器具有来自project.propertiesmavenSession.executionProperties的有限属性值。最后的胜利也在这里。