我有一个启动了执行器的Spring Boot Web应用程序。当我打开<app_url>/info
时,我会在下面看到
{
"git": {
"commit": {
"time": "2016-08-31T17:53:28.000+0000",
"id": "0a52a2f"
},
"branch": "master"
},
"build": {
"version": "unspecified",
"artifact": "my-app",
"name": "my-app",
"group": "",
"time": "2016-09-02T21:09:42.000+0000"
}
}
我不知道如何在这里生成版本号。我想使用语义版本控制MAJOR.MINOR.PATCH+timestamp+Build_Number
存储包的构建信息的一般共识是什么?我不想将它存储在application.yml
中,因为它是由Puppet管理的,并且是应用程序之战的外部。我希望它由Jenkins生成一些文件,Spring Boot可以从该文件中获取它。我应该让Jenkins写入由build-info.properties
spring-boot-gradle-plugin
生成的buildInfo
吗?或者Gradle本身在生成文件时是否应该生成版本? Gradle如何知道MAJOR.MINOR.PATCH
详细信息?我已经没有关于如何将所有这些整合在一起的想法。
答案 0 :(得分:1)
A little late, but this is how I am doing it (seems to work).
springBoot {
buildInfo {
additionalProperties = [
"version" : System.properties["version"] != null ? System.properties["version"] : "unspecified"
]
}
}
and then in my Jenkins Pipeline
./gradlew clean build -Dversion=${MAJOR}.${MINOR}.${PATCH}
The output jar then will have a build-info.properties
build.version=1.0.1