整合 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
延遲計算額外屬性的值。