跳到主要内容

与 Actuator 集成

DeepSeek V3 中英对照 Integrating with Actuator

生成构建信息

Spring Boot Actuator 的 info 端点会在存在 META-INF/build-info.properties 文件时自动发布有关构建的信息。Spring Boot 提供了一个 BuildInfo 任务来生成此文件。使用该任务的最简单方法是通过插件的 DSL:

springBoot {
buildInfo()
}
groovy

这将配置一个名为 bootBuildInfoBuildInfo 任务,并且如果存在 Java 插件的 classes 任务,将使其依赖于该任务。该任务的目标目录将是主资源集的输出目录中的 META-INF(通常为 build/resources/main)。

默认情况下,生成的构建信息来源于项目:

属性默认值
build.artifactbootJarbootWar 任务的基础名称
build.group项目的分组
build.name项目的名称
build.version项目的版本
build.time项目构建时的时间

可以通过 DSL 自定义属性:

springBoot {
buildInfo {
properties {
artifact = 'example-app'
version = '1.2.3'
group = 'com.example'
name = 'Example application'
}
}
}
groovy

要从生成的构建信息中排除任何默认属性,请将其名称添加到排除列表中。例如,可以按如下方式排除 time 属性:

springBoot {
buildInfo {
excludes = ['time']
}
}
groovy

build.time 的默认值是项目构建时的时刻。这带来的一个副作用是,该任务永远不会被标记为最新的。因此,构建将需要更长的时间,因为包括项目测试在内的更多任务将不得不执行。另一个副作用是,任务的输出将始终发生变化,因此构建将无法真正重复。如果你更重视构建性能或可重复性,而不是 build.time 属性的准确性,可以像前面的示例中所示,排除 time 属性。

还可以向构建信息添加其他属性:

springBoot {
buildInfo {
properties {
additional = [
'a': 'alpha',
'b': 'bravo'
]
}
}
}
groovy

可以通过使用 Provider 来延迟计算附加属性的值。