gpt4 book ai didi

java - Maven 资源插件不会过滤掉 ${} 中嵌套的自定义分隔符

转载 作者:行者123 更新时间:2023-11-30 05:43:39 25 4
gpt4 key购买 nike

我有一个属性文件:

property.a=$[value]

我正在使用 maven-resources-plugin 并启用对此属性文件的过滤,以便替换其中的构建变量:

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
</configuration>
</plugin>

一切都完美无缺,直到 $[*] token 未嵌套在 ${*} 中一,如下所示:

property.a=${VALUE:$[value]}

假设value=XXX在 Maven 属性中,我期望得到:

property.a=${VALUE:XXX}

但是,Maven 资源插件并不能替代 $[value]在那里,保留过滤后的内容原样。我尝试启用 supportMultiLineFiltering但这并没有改变什么。感觉就像尽管<delimiters>显式设置选项,插件处理 ${*}作为有效的分隔符,并尝试过滤它,但没有成功。

我应该如何配置maven资源插件,以便它按预期过滤属性文件内容?

最佳答案

我刚刚意识到我错过了 Maven 资源插件中的一个配置选项,该插件专门用于控制默认分隔符 - useDefaultDelimiters,默认情况下是正确的。以下配置解决了该问题:

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>

关于java - Maven 资源插件不会过滤掉 ${} 中嵌套的自定义分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55221816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com