0

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 ファイルに入力することです。その方法を知っていますか?

4

1 に答える 1

1

次のように、フィルタリング タスクを明示的に gradle に追加する必要があります。

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

プロパティ ファイルでは@プレースホルダーを使用する必要があります。

info.app.build-time=@build-time@
于 2016-05-10T13:02:33.290 に答える