我有一个spring boot项目,我想为info端点添加一些信息。
要添加spring-boot-actuator,我将它添加到gradle.build。现在,我希望有这样的事情:
{
"app" : {
"version" : "1.0.0",
"description" : "my program",
"name" : "my program",
"build-time" : "2016-04-08_06-26-53",
"build-tag" : "jenkins-infinity-sprint-5023",
"revision": "849604ec53b91d7903732f07eb3ca79c8f8dcf2b",
}
}
我希望从属性文件中获取大部分值,这些值可以在编译时填写。我的第一个方法是:
# application.properties
info.app.description=my program
info.app.name=my program
info.app.build-time=${System.env['BUILD_ID']}
info.app.build-tag=${System.env['BUILD_TAG']}
info.app.revision=${System.env['MERCURIAL_REVISION']}
info.app.version=${version}
但是当我打电话给/ info时我得到的JSON响应就是这个:
{
"app": {
"build-time": "${System.env['BUILD_ID']}"
"version": "${version}"
"description": "my program"
"revision": "${System.env['MERCURIAL_REVISION']}"
"build-tag": "${System.env['BUILD_TAG']}"
"name": "my program"
}
}
首先,我不知道为什么这些值没有被替换。我做错了什么?
我最初的想法是在Manifest.mf文件中填写我需要的所有值,你知道怎么做吗?
答案 0 :(得分:1)
您必须明确地将过滤任务添加到gradle,例如:
processResources() {
filesMatching("application.properites") {
filter(ReplaceTokens, tokens: [
'build-time': System.env['BUILD_ID']
])
}
}
您的属性文件应使用@
占位符:
info.app.build-time=@build-time@