当前位置:  开发笔记 > 编程语言 > 正文

应用程序版本未显示在Spring Boot banner.txt中

如何解决《应用程序版本未显示在SpringBootbanner.txt中》经验,为你挑选了2个好方法。

在运行应用程序时,banner.txt中定义的应用程序版本不会显示在控制台上.它是根据Spring Boot的文档定义的

${application.version}

该项目使用spring-boot-starter-parent作为父pom(来自start.spring.io的基本项目设置)



1> Chris Naurot..:

好吧,如果我构建项目并通过java -jar运行它,则会打印该版本.但是,如果我在IDE(IntelliJ IDEA)中启动应用程序,则不会打印该版本.

根据关于自定义横幅的Spring Boot文档,值${application.version}是从jar清单中获取的.

在MANIFEST.MF中声明的应用程序的版本号.例如,Implementation-Version:1.0打印为1.0.

从IDE运行时,通常会针对IDE编译的类文件执行.IDE通常不会经历使用清单构建整个jar的完整周期.因此,在运行时没有MANIFEST.MF可用于替换值${application.version},并且您将使用裸令牌.

这不是代码中的错误,并且您已经看到它在执行完整的jar构建时可以正常工作.如果在通过IDE运行时修复此问题非常重要,那么您可以考虑设置一个自定义构建步骤,该步骤首先完成整个jar构建和清单生成.但这可能有点过头了.通过测试jar的真实发布版本,可以在IDE之外验证横幅.


即使用java运行jar文件,它也不适用于我.知道为什么吗?我在banner.txt文件中有这一行:`Version $ {application.version}`在控制台中显示完全相同

2> 小智..:

在我的例子中,我查看了spring-boot-maven-plugin创建的清单,里面没有Implementation-version.

要添加它,我在我的pom.xml的build.plugins部分添加了插件maven-jar-plugin.


    org.apache.maven.plugins
    maven-jar-plugin
    3.0.2
    
         
              
                    ${project.version}
              
         
    

之后如前所述,只有当我执行java -jar而不是我的ide时才可以看到带有应用程序版本的横幅

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有