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

我有一个属性文件:

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资源插件不会在那里替代,而是按原样保留过滤的contecnts。我尝试启用,但它没有改变任何东西。感觉就像尽管明确设置了选项,插件也将其视为有效的分隔符,并尝试过滤它,但没有成功。$[value]supportMultiLineFiltering<delimiters>${*}

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


婷婷同学_
浏览 139回答 1
1回答

动漫人物

我刚刚意识到我错过了maven资源插件中的一个配置选项,该选项专为控制默认分隔符而设计 - ,默认情况下这是真的。以下配置解决了该问题:useDefaultDelimiters<plugin>&nbsp; &nbsp; <artifactId>maven-resources-plugin</artifactId>&nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; <delimiters>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <delimiter>$[*]</delimiter>&nbsp; &nbsp; &nbsp; &nbsp; </delimiters>&nbsp; &nbsp; &nbsp; &nbsp; <useDefaultDelimiters>false</useDefaultDelimiters>&nbsp; &nbsp; </configuration></plugin>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java