如何使用Spring Boot、Gradle、语义版本控制和Jenkins生成应用程序版本
我有一个Spring Boot web应用程序,启用了执行器。当我打开如何使用Spring Boot、Gradle、语义版本控制和Jenkins生成应用程序版本,gradle,spring-boot,semantic-versioning,spring-boot-actuator,spring-boot-gradle-plugin,Gradle,Spring Boot,Semantic Versioning,Spring Boot Actuator,Spring Boot Gradle Plugin,我有一个Spring Boot web应用程序,启用了执行器。当我打开/info时,我看到了下面的内容 { "git": { "commit": { "time": "2016-08-31T17:53:28.000+0000", "id": "0a52a2f" }, "branch": "master" }, "build": { "version": "uns
/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\u Number
w.r.t存储包的构建信息的普遍共识是什么?我不想将它存储在
application.yml
中,因为它是由Puppet管理的,并且不属于应用程序战争。我希望它是由Jenkins生成到某个文件中,Spring Boot可以从该文件中获取它。我是否应该让Jenkins写入由spring boot gradle插件生成的buildInfo.properties
?或者,当Gradle生成文件时,该版本应该由Gradle自己生成吗?Gradle如何知道MAJOR.MINOR.PATCH
详细信息?关于如何将所有这些整合在一起,我已经没有什么想法了 有点晚了,但我就是这样做的(似乎有效)
然后在我的詹金斯管道里
./gradlew clean build -Dversion=${MAJOR}.${MINOR}.${PATCH}
然后,输出jar将具有build-info.properties
build.version=1.0.1
build.version=1.0.1