0

У меня есть проект загрузки весны, и я хотел бы добавить некоторую информацию для конечной точки информации.Информация о загрузке Spring Boot

Чтобы добавить пружинный механизм, я добавил его в 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} 

Но ответ 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

Вы должны добавить задачу фильтрации для Gradle явно, что-то вроде:

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

Ваш файл свойств следует использовать @ заполнители:

[email protected]@ 
+0

Это не работает, я получаю: «build-time»: «@ build-time @» – Manuelarte

+0

Похоже, что 'filesMatching (...)' не выбирает ваш файл. Путь в моем фрагменте, очевидно, информативен, вы должны заменить его на местоположение вашего файла. –