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>