与Actuator集成
生成构建信息
Spring Boot Actuator 的 info
端点会在存在 META-INF/build-info.properties
文件的情况下自动发布有关构建的信息。提供了一个 BuildInfo
任务来生成此文件。使用此任务最简单的方法是通过插件的 DSL。
-
Groovy
-
Kotlin
springBoot {
buildInfo()
}
springBoot {
buildInfo()
}
这将配置一个名为 bootBuildInfo
的 BuildInfo
任务,如果存在,则使 Java 插件的 classes
任务依赖于它。任务的目标目录将是主源集资源的输出目录中的 META-INF
(通常是 build/resources/main
)。
默认情况下,生成的构建信息来自项目
属性 | 默认值 |
---|---|
|
|
|
项目的组 |
|
项目的名称 |
|
项目的版本 |
|
构建项目的时间 |
可以使用 DSL 自定义属性。
-
Groovy
-
Kotlin
springBoot {
buildInfo {
properties {
artifact = 'example-app'
version = '1.2.3'
group = 'com.example'
name = 'Example application'
}
}
}
springBoot {
buildInfo {
properties {
artifact.set("example-app")
version.set("1.2.3")
group.set("com.example")
name.set("Example application")
}
}
}
要从生成的构建信息中排除任何默认属性,请将其名称添加到 excludes 中。例如,可以如下排除 time
属性:
-
Groovy
-
Kotlin
springBoot {
buildInfo {
excludes = ['time']
}
}
springBoot {
buildInfo {
excludes.set(setOf("time"))
}
}
build.time
的默认值是构建项目时的瞬间。这会产生一个副作用,即任务永远不会是最新的。结果,构建将花费更长时间,因为必须执行更多任务,包括项目的测试。另一个副作用是任务的输出将始终发生变化,因此构建将不是真正可重复的。如果您更重视构建性能或可重复性而不是 build.time
属性的准确性,请按前面的示例中所示排除 time
属性。
还可以向构建信息中添加其他属性。
-
Groovy
-
Kotlin
springBoot {
buildInfo {
properties {
additional = [
'a': 'alpha',
'b': 'bravo'
]
}
}
}
springBoot {
buildInfo {
properties {
additional.set(mapOf(
"a" to "alpha",
"b" to "bravo"
))
}
}
}
可以通过使用 Provider
来延迟计算附加属性的值。