使用maven打包替换掉页面的占位符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用maven打包替换掉页面的占位符
1 项目遇到问题
项目在更新版本后,对用户来说会存在前端资源被浏览器缓存的问题,这时候要清理浏览器缓存,对用户来说就比较麻烦了。
2 解决方案
通过对资源文件添加版本号作为请求参数,在更新版本后统一更新版本号,用户访问的时候浏览器就会当成新的请求去拉取资源。
3 实现思路
Maven 打包的时候可以设置filtering 来过滤设置好的占位符(1)。
4 实现方案
因为maven 中的占位符默认是${} , 而我们已存在的代码中大量使用了$ 来取值,这样就会导致打包的时候会替换掉maven本身的值,比如${id},${version},${name}... , 这时候就想用其他的占位符来替换$ .通过查找API(2)发现可以使用,
代码如下:
useDefaultDelimiters 的api 如下:
注意,这里的since是3.0.0 就是说使用的时候maven-war-plugin 对应的版本应该大于3.0.0,
Delimiters 的api 如下:
注意,这里的since是3.0.0 就是说使用的时候maven-war-plugin 对应的版本应该大于3.0.0,
项目还添加了prifile用来加载对不同的环境进行资源配置,默认是dev, 如果需要可以在打包的时候指定-Pdev 或-Pproduct.
具体命令: clean package -Pdev
5 对开发的影响
Jsp页面避免使用#{id},#{name} 用来存取数据.
6 关于乱码
需要在
参考资料
1.
/plugins/maven-war-plugin/examples/adding-filtering-webresources.ht ml
2.
/plugins/maven-war-plugin/war-mojo.html