当前位置: 首页 > 知识库问答 >
问题:

应用程序版本不显示在Spring Bootbanner.txt

堵宪
2023-03-14

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

${application.version}

该项目使用spring boot starter父级作为父级pom(从start.spring.io开始的基本项目设置)

共有3个答案

商天逸
2023-03-14

仅供参考,以下是我在基于Gradle的项目中发现的适用于Spring Boot 2命令行的方法(使用Spring Boot Gradle插件)。Intellij的控制台仍然不适合我,但是这个问题已经存在好几年了。

在标准的2.0.5上使用jar任务不适合我。释放build.gradle,因为bootJar任务优先:

默认情况下,配置bootJar或bootWar任务时,会禁用jar或war任务。

所以我尝试了bootJar任务,它很有效:

version = '0.0.1-SNAPSHOT'

bootJar {
    mainClassName = 'com.demo.Application'
    manifest {
        attributes('Implementation-Title':   'Demo Application',
                   'Implementation-Version': version)
    }
}

注意:如果只有一个主类,则不需要使用mainClassName及其等价物。发现或配置的主类会自动添加到清单中。MF作为“入门课程”。

一旦这起作用,您可以像往常一样在Spring Boot横幅中使用${application.title}${application.version}。txt文件

葛智敏
2023-03-14

另一个解决方案:

使用maven资源插件过滤(替换)资源文件中的属性。

在pom中,使用以下定义激活资源筛选:

<resources>
    <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
            <include>application.properties</include>
        </includes>
    </resource>
</resources>

在应用程序中。属性文件:

info.app.name=@project.artifactId@
info.app.version=@project.version@

在横幅上。txt文件:

${info.app.name} (${info.app.version})
田嘉慕
2023-03-14

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

根据自定义横幅上的Spring Boot留档,${application.version}的值取自jar清单。

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

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

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

 类似资料:
  • 我正在运行

  • 我已经在谷歌游戏控制台上提交了我的Android应用程序的更新,并获得批准,并在谷歌应用商店上显示最新版本。 然而,当我在Play Store上下载应用程序时,旧版本APK是下载的,而不是新版本。 我尝试过清除Play Store缓存,以及卸载和重新安装应用程序,但仍然是旧的APK。这很麻烦,因为它显示我正在下载最新版本。 其他人有这个问题吗? 谢谢

  • 我是spring boot新手,尝试使用spring boot编写MVC应用程序。控件将到达控制器,但JSP没有显示。我试着把JSP放在webapp文件夹,webapp/web-inf文件夹,但它不起作用。下面是代码。 应用属性: 登录控制器: 项目结构

  • 我很难同时运行我的广告和应用程序。我花了两天的时间试图找到一个解决方案,但什么都没用。请帮忙。 这段代码显示我的google play services Admob广告——广告显示,但我看不到我的游戏屏幕,它是黑色背景。 此代码(注释掉的广告代码)成功运行我的游戏。是什么原因导致这两种方法无法协同工作? 你好,威廉。我刚刚开始学习Java,我使用的教程已经开始了http://www.kilobol

  • 我试图启动一个maven项目在视觉工作室代码,我运行mvn清洁安装命令来生成战争,一切都是正确的,但在Spring启动仪表板选项卡中,应用程序似乎无法启动它。 这是我的maven和java版本: 我已经尝试了命令mvnSpring启动:运行,但失败了,这是输出:

  • 问题内容: 我想在Java swing应用程序中显示一个网页。与使用HTML时类似,但在Java Swing中。这可能吗?如果可以,怎么办? 问题答案: 使用: