1

我有一个属性文件:

property.a=$[value]

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

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

一切都完美无缺,直到$[*]令牌没有嵌套成${*}一个,如下所示:

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

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

property.a=${VALUE:XXX}

但是,Maven 资源插件并不能$[value]在那里替代,过滤后的内容保持原样。我尝试启用supportMultiLineFiltering,但没有任何改变。感觉尽管<delimiters>选项已明确设置,但插件也将${*}其视为有效分隔符,并尝试对其进行过滤,但没有成功。

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

4

1 回答 1

1

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

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <delimiters>
            <delimiter>$[*]</delimiter>
        </delimiters>
        <useDefaultDelimiters>false</useDefaultDelimiters>
    </configuration>
</plugin>
于 2019-03-18T12:59:36.370 回答