maven filter转换时容易忽略的错误

本文描述了一个关于Maven资源插件(maven-resources-plugin)的配置问题,当配置文件中包含特殊字符如@时,可能导致插件误将这些字符视为变量占位符并尝试替换,从而导致配置文件解析错误。通过自定义delimiter可以解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Maven管理,定义了Filter,配置文件中的动态值都由Filter管理。

 

Apache Maven 3.0

maven-compiler-plugin 2.3.1

maven-resources-plugin 2.4.3

maven-jetty-plugin  6.1.25

 

发现一个疑似bug:

    在配置文件中有

<email>xxx@somesite.com</email>

    此时使用mvn compile、package都可以得到正确结果,但Eclipse插件、jetty引发的编译会出现Filter转换错误的情况,包含email地址的文件不能正确转义。

    原因是maven-resources-plugin的默认delimiter包括 ${*}和@,邮件地址恰好包含了关键字,造成转换问题(质疑使用@的原因),在pom.xml中修改默认delimiter定义

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.4.3</version>
				<configuration>
					<delimiters>
					  <delimiter>${*}</delimiter>
					</delimiters>
					<useDefaultDelimiters>false</useDefaultDelimiters>
				</configuration>
			</plugin>

    去掉@分割后一切正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值