Maven 资源插件不会过滤掉嵌套在 ${} 中的自定义分隔符
Maven resource plugin doesn't filter out customized delimiters nested in ${}
我有一个属性文件:
property.a=$[value]
我正在使用 maven-resources-plugin 并在此 属性 文件上启用过滤,以便替换其中的构建变量:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
</configuration>
</plugin>
一切正常,直到 $[*]
标记没有嵌套到 ${*}
中,如下所示:
property.a=${VALUE:$[value]}
假设在 Maven 属性中 value=XXX
,我希望得到:
property.a=${VALUE:XXX}
但是,Maven 资源插件不会替换其中的 $[value]
,而是按原样保留过滤后的内容。我尝试启用 supportMultiLineFiltering
但它没有任何改变。感觉尽管 <delimiters>
选项被显式设置,插件还是将 ${*}
视为有效的分隔符,并尝试过滤它,但没有成功。
我应该如何配置 maven 资源插件,以便它按预期过滤 属性 文件内容?
我刚刚意识到我在 maven 资源插件中错过了一个配置选项,专门用于控制默认分隔符 - useDefaultDelimiters
,默认情况下为 true。下面的配置解决了这个问题:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
我有一个属性文件:
property.a=$[value]
我正在使用 maven-resources-plugin 并在此 属性 文件上启用过滤,以便替换其中的构建变量:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
</configuration>
</plugin>
一切正常,直到 $[*]
标记没有嵌套到 ${*}
中,如下所示:
property.a=${VALUE:$[value]}
假设在 Maven 属性中 value=XXX
,我希望得到:
property.a=${VALUE:XXX}
但是,Maven 资源插件不会替换其中的 $[value]
,而是按原样保留过滤后的内容。我尝试启用 supportMultiLineFiltering
但它没有任何改变。感觉尽管 <delimiters>
选项被显式设置,插件还是将 ${*}
视为有效的分隔符,并尝试过滤它,但没有成功。
我应该如何配置 maven 资源插件,以便它按预期过滤 属性 文件内容?
我刚刚意识到我在 maven 资源插件中错过了一个配置选项,专门用于控制默认分隔符 - useDefaultDelimiters
,默认情况下为 true。下面的配置解决了这个问题:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>