运行应用程序时,banner.txt 中定义的应用程序版本不会显示在控制台上。它的定义是根据Spring Boot 文档 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-banner
${application.version}
该项目使用 spring-boot-starter-parent 作为父 pom(基本项目设置来自启动.spring.io http://start.spring.io/)
好的,如果我构建项目并通过 java -jar 运行它,则会打印版本。但是,如果我在 IDE (IntelliJ IDEA) 中启动应用程序,则不会打印版本。
根据 Spring Boot 文档自定义横幅 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-banner, 的价值${application.version}
取自 jar 清单。
MANIFEST.MF 中声明的应用程序的版本号。例如,Implementation-Version: 1.0 打印为 1.0。
从 IDE 运行时,通常会针对 IDE 编译的类文件执行。 IDE 通常不会经历使用清单构建整个 jar 的完整周期。因此,运行时没有可用的 MANIFEST.MF 来替换${application.version}
,你就只剩下裸露的令牌了。
这不是代码中的错误,并且您已经看到它在执行完整 jar 构建时可以正常工作。如果在运行 IDE 时修复此问题确实很重要,那么您可以考虑设置一个自定义构建步骤,该步骤首先执行完整的 jar 构建和清单生成。但这可能有点矫枉过正了。稍后可以通过针对 jar 的真实发布版本进行测试来在 IDE 外部验证横幅。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)