info端点 - application.yml maven过滤无法正常工作

时间:2016-01-26 15:56:06

标签: spring-boot

我们正在使用spring boot 1.3.1。 我在application.yml文件中有以下详细信息。

info:
  build:
    artifact: ${project.artifactId}
    name: ${project.name}
    description: ${project.description}
    version: ${project.version}

我正在构建war文件并将其部署到tomcat。当我访问/ info端点时,我看不到值被替换。

我没有使用'spring-boot-maven-plugin',因为我不需要独立运行应用程序。

默认情况下,过滤是否适用于YML文件?

另外,有没有使用maven project.version属性在banner.txt文件上显示应用程序版本的示例?

在Dave的评论之后,我更新了我的application.yml文件,如下所示,它正在运行。

info:
  build:
    artifact: @project.artifactId@
    name: @project.name@
    description: @project.description@
    version: @project.version@

另外,我发现在banner.txt文件的独立tomcat中没有选择application.version。 Tomcat无法读取manifest.mf文件。 Spring引导问题:https://github.com/spring-projects/spring-boot/issues/3406

2 个答案:

答案 0 :(得分:3)

我认为默认情况下maven中没有打开过滤功能。如果使用spring-boot-starter-parent,则启用 ,但占位符的键为CustomMarker processMarkerUpdate(JSONObject json) { CustomMarker cm = new CustomMarker(json.optDouble("latitude", 0.0), json.optDouble("longitude",0.0)); if (json.has("id")) { cm.setUid(json.getString("id")); } else { //If this happens, we stop processing. throw new InvalidCMException(); } cm.setLabel(json.optString("label", "")); return cm; } 而不是@..@

答案 1 :(得分:1)

我不知道您使用的是哪个版本的弹簧靴,

但对我来说version: @project.version@没有用。 相反,version: #project.version#为我工作。

我的项目有以下父pom配置:

<parent>
    <artifactId>spring-boot-starter-parent</artifactId>
    <groupId>org.springframework.boot</groupId>
    <version>1.4.1.RELEASE</version>
    <relativePath />
</parent>