gpt4 book ai didi

gradle - 如何使用 Spring Boot、Gradle、Semantic Versioning 和 Jenkins 生成应用程序版本

转载 作者:行者123 更新时间:2023-12-03 23:50:11 24 4
gpt4 key购买 nike

我有一个启用了执行器的 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
w.r.t 存储包的构建信息的普遍共识是什么?我不想把它存储在 application.yml因为它由 Puppet 管理并且在应用程序 war 之外。我希望它由 Jenkins 生成到某个文件中,并且 Spring Boot 可以从该文件中提取它。我应该让 Jenkins 写入 build-info.propertiesspring-boot-gradle-plugin 生成 buildInfo ?还是应该在生成文件时由 Gradle 本身生成版本? Gradle 是怎么知道的 MAJOR.MINOR.PATCH细节 ?我已经没有关于如何将所有这些整合在一起的想法了。

最佳答案

有点晚了,但这就是我的工作方式(似乎有效)。

springBoot  {
buildInfo {
additionalProperties = [
"version" : System.properties["version"] != null ? System.properties["version"] : "unspecified"
]
}
}

然后在我的 Jenkins 管道中
./gradlew clean build -Dversion=${MAJOR}.${MINOR}.${PATCH}

输出 jar 然后将有一个 build-info.properties
build.version=1.0.1

关于gradle - 如何使用 Spring Boot、Gradle、Semantic Versioning 和 Jenkins 生成应用程序版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com