弹簧启动器执行器信息

时间:2016-05-10 12:31:21

标签: spring-mvc gradle spring-boot manifest.mf spring-boot-actuator

我有一个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文件中填写我需要的所有值,你知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

您必须明确地将过滤任务添加到gradle,例如:

processResources() {
    filesMatching("application.properites") {
        filter(ReplaceTokens, tokens:  [
                'build-time': System.env['BUILD_ID']
        ])
    }
}

您的属性文件应使用@占位符:

info.app.build-time=@build-time@