Spring 来自 Gradle 文件的引导执行器信息端点版本

Spring Boot Actuator Info Endpoint Version from Gradle File

我想要 /info 执行器端点从我的 Spring 启动 (1.2.4.RELEASE) 应用程序到 return [=15] 中指定的版本=] 文件.

在我的 build.gradle 文件中有这样一行:

version = '0.0.1-SNAPSHOT'

我正在使用 yaml 配置文件。现在我在 application.yml:

中复制了版本
info:
    build:
        version: 0.0.1-SNAPSHOT  

这可能吗?

这个确切的用例在引导文档中有详细说明:

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-application-info-automatic-expansion-gradle

所以在你的build.gradle中这样做

version = '0.0.1-SNAPSHOT'
processResources {
    expand(project.properties)
}

你的application.yml

info:
  build:
    version: ${version}
  1. 确保转义所有 spring 占位符,以免与 Gradle 冲突。两者都使用 ${} 作为替换标记。 ${key} 应该变成 \${key} 。这将影响 src/main/resources 中的任何内容。

  2. Clean/build 并部署您的 war/jar。不要 运行 来自你的 IDE 否则占位符将不会被替换。

将以下内容添加到 build.gradleFile。没有必要创建 InfoContributor class.

plugins {
id 'org.springframework.boot' version '<version>'
}

springBoot {
buildInfo()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    etc...
}

查询 http://host:port/actuator/info 你会看到类似...

  {
  "build": {
    "artifact": "spring-example",
    "name": "spring-example",
    "time": "2020-01-30T09:47:33.551Z",
    "version": "0.0.1-SNAPSHOT",
    "group": "com.example"
  }
}

N.b。使用 2.2.4.RELEASE

测试