在Gradle构建系统时设置了项目的版本号,使用SpringBoot开发应用程序时也需要Gradle构建项目的版本号,两个不同体系下的版本号如何统一使用,Gradle已经给出可用的方案。
一般情况下,在SpringBoot应用程序中我们会在application.properties文件中定义应用的版本参数
custom.app.version=0.0.3
现在将其修改为:
custom.app.version=${version?:unknown}
这其中version就是Gradle脚本中的项目版本号,但此时还不能真正得到Gradle中定义的项目版本号
需要在Gradle的脚本中添加如下任务:
processResources { expand(project.properties) }
于是在构建项目时将Gradle脚本中定义的项目版本注入到资源文件中,但为了更准确地将版本参数注入到application.properteis属性文件中,可使用过滤条件进一步明确范围,Gradle中的任务做如下修改:
processResources { filesMatching('application.properties') { expand(project.properties) } }
之后在SpringBoot应用程序中访问参数custom.app.version获取到的就是Gradle脚本中定义的项目版本号
@Value("${custom.app.version}") // it's version property in build.gradle private String appVersion;