我有一个属性文件:
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资源插件,以便它按预期过滤属性文件内容?
答案 0 :(得分:1)
我刚刚意识到我错过了maven资源插件中的一个配置选项,该选项专门用于控制默认定界符-useDefaultDelimiters
,默认情况下为true。以下配置解决了该问题:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>