以前在 Spring Boot 1.x 中,我编写了一个 Gradle 任务来将 jar 的构建版本复制到应用程序的版本中,application.yml
并用正则表达式替换给定的属性,例如info.build.version: 0.0.1
迁移到 Spring Boot 2.0,我意识到有io.spring.dependency-management
允许我定义buildInfo
任务的插件:
springBoot {
buildInfo()
}
这在访问/info
执行器时有效并成功显示了相同的信息。
现在我想在两个用例中使用生成build.version
的 in :META-INF/build-info.properties
- 在 SwaggerUI 中显示版本
- 在每个日志行中包含版本
以前,像这样访问属性就足够了:@Value("${info.build.version:undefined}") String buildVersion
或 in logback-spring.xml
:
<springProperty scope="context" name="applicationVersion" source="info.build.version"/>
不幸的是,即使我替换info.build.version
为build.version
(正如我所期望的那样),这两个访问器都不再起作用了。
我相信在 logback 中包含版本只是通过注释访问属性的一小步@Value
,所以这是我问题的核心:
如何访问生成build.version
的 in META-INF/build-info.properties
through @Value
?
我也尝试添加任务
processResources {
filesMatching('build-info.properties') {
expand(project.properties)
}
}
正如https://stackoverflow.com/a/42051412/3105453中所建议的那样,但这似乎没有任何效果。