我看过很多关于这个主题的文章和帖子,它们的做法似乎都不同,并且在许多情况下,建议的解决方案不清楚或不起作用。 有些解决方案有效,但似乎超出了要求。
如何提供 Spring Boot 执行器 /info 端点,以便它显示应用程序名称、版本、构建时间?
在 application.properties 中,如果你没有它,请在下面添加它,但你应该有它,因为这是 spring 默认添加的:
spring.application.name=myApp
,还补充:
management.endpoints.web.exposure.include=health,info,loggers
有些人建议也启用 env,但我不需要(我正在使用 spring-boot-starter-parent 2.6.7)。所以,我评论了这一行:
#management.info.env.enabled=true
另外,有些人建议在下面添加几行,但这些是不需要的,所以我将它们注释掉(如果你愿意,你可以保留它们,它们会起作用,你只会得到双重显示的应用程序名称和版本):
#info.application.name=${spring.application.name}
#[email protected]@
#[email protected]@
在 pom.xml 中,添加 spring-boot-maven-plugin,例如:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<!-- to expose build info in actuator/info -->
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
有些人建议添加
@Configuration
bean 来设置这些,但它不是必需的,所以我没有它。
现在,当我构建 myApp 并运行它时,当我访问 /info 端点时,我会得到响应:
{
"build": {
"artifact": "myApp",
"name": "myApp",
"time": "2024-11-21T21:16:23.472Z",
"version": "0.1.2-SNAPSHOT",
"group": "com.example"
}
}
如果您保留上面的
info.app.name
、info.app.version
、info.app.description
,您将得到另一个名为 app
的响应节点,在该节点下您将看到 name
、version
和 description
。因此,名称和版本将会重复。