首页 > 解决方案 > Spring Boot Banner 报错java版本

问题描述

在我们的底部banner.txt,我们有以下内容

Running Spring Boot ${spring-boot.version} on java ${java.version} in environment ${ccic.environ}

开始于

Running Spring Boot 2.0.5.RELEASE on java 1.8.0_144 in environment uat

今天我们有点害怕,因为有人注意到它说1.8.0_144的是java.version,但是我们应该跑步 1.8.0_131。经过进一步调查,我们可以确认我们正在运行1.8.0_131.

我很好奇1.8.0_144是从哪里来的。它似乎MANIFEST.MF包含1.8.0_144key的值Build-Jdk,大概是构建服务器上的 java 是错误的。那是春天在读它吗?

令我惊讶的是,它java.version更喜欢MANIFEST.MF运行时。我的想法不对劲吗?为什么spring boot没有返回正确的java版本?我尝试查看 spring 源代码,但找到“java.version”或“javaversion”并没有帮助。

标签: javaspringmavenspring-boot

解决方案


事实证明,theMANIFEST.MF和 spring 都是红鲱鱼。我们使用 maven 进行构建,并且打开了过滤。构建正在过滤banner.txt和替换值。我们使用以下配置来防止过滤发生在banner.txt.

        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>banner.txt</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>banner.txt</include>
            </includes>
        </resource>

推荐阅读