为了方便查阅项目的编译时间,确定部署在服务器上的服务对应哪个版本,以前总是要手动的改动property文件。最近摸索出一种新的方法。
核心思路是将maven build time 写入Spring Boot 的application.yml,然后将application.yml的属性注入代码,暴露API供外部查询。
获取maven build time
主要参考了这篇文章:
https://rterp.wordpress.com/2...
在properties section 添加两个属性,maven.build.timestamp这个变量保存了maven编译时间戳,但无法直接替换到资源文件,所以使用timestamp 变量中转一下。maven.build.timestamp.format 是设置时间格式的。怎么设置看大家的喜好。
${maven.build.timestamp}
yyyy-MM-dd HH:mm
将编译时间替换进application.yml
在POM文件的build section使能资源文件替换
src/main/resources
true
然后往application.yml注入时间,这里我犯过一个错误,使用了 ${timestamp},spring boot框架,将替换语法改成了@@。
self:
time: @timestamp@
将application.yml属性注入Java变量
一个简单的Value映射,即可将timestamp注入到变量,映射API,即可通过REST API查询到编译时间。
@Value("