Gradle文件中的Sping Boot 执行器信息端点版本

vuktfyat  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(96)

我希望Sping Boot (1.2.4.RELEASE)应用程序中的/info执行器端点返回build.gradle文件中指定的版本。
在我的build.gradle文件中,我有一行代码如下:

version = '0.0.1-SNAPSHOT'

我正在使用yaml配置文件。现在我在application.yml中复制了这个版本:

info:
    build:
        version: 0.0.1-SNAPSHOT

这可能吗?

fcg9iug3

fcg9iug31#

将以下内容添加到build.gradle文件中。不需要创建InfoContributor类。

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测试

yftpprvb

yftpprvb2#

Boot 文档中详细说明了此确切用例:
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-application-info-automatic-expansion-gradle
所以在你的构建中。gradle这样做

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

您的应用.yml

info:
  build:
    version: ${version}

1.请确保避开任何spring占位符,这样它就不会与Gradle冲突。两者都使用${}作为替换令牌。${key}应变为${key}。这将影响src/main/resources中的任何内容。
1.清理/构建并部署你的war/jar。不要从IDE运行它,否则占位符将不会被替换。

相关问题