maven项目中 maven中的id,version等属性值会替换掉freemarker模板中的属性值

Maven有一个内置的资源替换机制, 可以对由Maven管理的资源文件进行变量替换。 预定义的Maven属性变量包括${name},${version} ,${id},${project.version},${project.packaging}和${project.artifactId}等

 熟悉FreeMarker的同学就会发现Maven使用和FreeMarker相同的方法来定义变量:${变量名}。

如果把FreeMarker模板文件放在Maven资源文件目录下(比如src/main/resources), 在缺省配置下, Maven打包工具会扫描这些FreeMarker模板文件并替换其中所有Maven可识别的变量。

比如

<input name="version" id="version" value='${version}'>

这时候编译后,target中的代码就会变成

<input name="version" id="version" value='0.0.1-SNAPSHOT'>

那么这个   0.0.1-SNAPSHOT   是哪来的呢,经查找是pom.xml中的

解决方法:

1. 最简单的是在FreeMarker模板中,避免使用Maven属性变量名, 比如将${version}替换成${userVersion}, 这样Maven就不会修改这个文件了。

2. 更好的方法是在Maven POM文件中声明对FreeMarker模板文件进行直接复制,不要进行任何Maven资源替换。 如下例所示

不对src/main/resources/page下的文件夹中的  .ftl文件进行替换,原封不动的复制过来,这样代码就不会被改变了

【右上角点个赞,谢谢】

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值