4

我有一个启用了执行器的 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 可以从该文件中获取它。我应该让詹金斯写入build-info.properties由 生成的spring-boot-gradle-plugin buildInfo吗?还是应该在生成文件时由 Gradle 自己生成版本?Gradle 是如何知道MAJOR.MINOR.PATCH细节的?我已经没有关于如何将所有这些整合在一起的想法了。

4

1 回答 1

1

有点晚了,但这就是我的做法(似乎有效)。

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
于 2017-06-12T16:43:21.640 回答