【问题标题】:How to do the application versioning in the spring boot?如何在 Spring Boot 中进行应用程序版本控制?
【发布时间】:2017-06-16 13:14:59
【问题描述】:

我在我的应用程序中使用spring bootgradle。应用程序可以有不同的versions,我们需要在页脚中显示应用程序的版本信息。

例如1.0.0 or 1.0.0.RELEASE etc

有哪些可能的方法来做到这一点?

【问题讨论】:

    标签: java gradle spring-boot versioning


    【解决方案1】:

    documentation 中有一个很好的例子。您可以从 Gradle 项目中自动展开属性,并将这些属性作为占位符引用到您的 application.properties 文件中。

     processResources {
         expand(project.properties) 
     }
    

    然后您可以通过以下方式引用您的 Gradle 项目的属性 占位符,例如

    app.name=${name} 
    app.description=${description}
    

    然后,您可以使用 @Value 注释在您的应用程序中获取 properties 值。

    @Value("${app.version}")
    public String appVersion;
    
    @Override
    public void run(String... arg0) throws Exception {
        System.out.println(appVersion);
    }
    

    也许你必须逃避占位符机制:

    Gradle 的 expand 方法使用 Groovy 的 SimpleTemplateEngine 转换 ${..} 令牌。 ${..} 样式与 Spring 自己的样式冲突 属性占位符机制。使用 Spring 属性占位符 连同自动扩展 Spring 属性占位符 需要像\${..} 一样转义。

    P.S.:使用 maven,您也可以这样做。 more...

    【讨论】:

    • 我尝试了你的建议。但是后来我收到错误,例如任务':processResources'的执行失败。无法复制文件.. logback.xml
    • @ashishjmeshram 也许你必须逃避占位符。我更新了我的答案。如果错误仍然存​​在,请提供更多信息。
    • 问题仅出在 processResources { expand(project.properties)} 行。所以即使我只添加这一行。我开始遇到错误。
    • @ashishjmeshram 你能显示你收到的错误消息吗?
    • 我得到的错误如下。 :processResources FAILED FAILURE:构建失败并出现异常。 * 出了什么问题:任务 ':processResources' 执行失败。 > 无法将文件“/opt/workspaces/src/main/resources/logback-spring.xml”复制到“/opt//workspaces/build/resources/main/logback-spring.xml”。
    猜你喜欢
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多