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

将Maven中的Java版本与system Java版本设置为11.0

元阳荣
2023-03-14

我目前在我的本地机器中使用jdk版本为11,使用JAVA_HOME设置。

我需要运行一个java_version为9的maven项目。要进行同样的操作,请参考https://www.baeldung.com/maven-java-version

这是我的pom.xml文件

<properties>
    <java.version>8</java.version>
    <maven.compiler.plugin.version>3.8.0</maven.compiler.plugin.version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compiler.plugin.version}</version>
            <configuration>
                <release>8</release>
            </configuration>
        </plugin>
    </plugins>
</build>

然后,我运行命令“mvn clean install”,生成的jar文件在其清单文件中的java-version为11。下面是带装饰的jar的清单文件的片段

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven 3.5.0
Built-By: test
Build-Jdk: 11.0.2

为什么它仍然选择java版本为11,为什么不选择8?

共有1个答案

暨嘉
2023-03-14

在POM 部分中设置Java.version不会更改用于使用maven-compiler-plugin进行编译的Java版本。Spring Boot使用它(请参见在maven中指定java版本-属性和编译器插件之间的差异以了解相关讨论)。

您的构建仍然使用机器上安装的JDK11(这由清单属性build-jdk:11.0.2反映),但是,您的代码实际上是用Java 8的源代码和目标编译的。JDK11知道如何针对早期版本(如JDK8)进行编译,因此您的构建工作正常。

 类似资料:
  • 在我的机器上,我安装了两个Java版本:(我手动安装的1.6和1.7)。我需要他们两个为不同的项目。但对于Maven,我需要1.7,但我的Maven使用的是1.6 Java版本。

  • 由于某种原因,maven在构建我的项目时自动选择java编译器1.5,尽管我安装了JDK1.8 步骤1 ,然后选择“工作区默认JRE(JDK1.8.0_102)”。 我在那个窗口中注意到的是:只有J2SE-1.x,其中x<=5 步骤3 然后转到`Project->Java Compiler,在这里我发现编译器遵从性级别设置为1.5(参见屏幕截图)。因此我将“编译器遵从级别更改为1.8”

  • 我已经搜索了几种在Mac上更改JDK版本的方法。 我得到了 我如何在我的Mac上改变java版本。

  • 问题内容: 我正在尝试在Android Studio中使用Java版本1.7,但是很遗憾,它无法正常工作…如果将版本设置为 但是,当我使用带有字符串的声明语句时,出现了在Java 1.7中应该发生的错误,因此我是否需要设置其他设置? 问题答案: 不,没有设置可更改。Android SDK不支持完整的Java 7语法,因此您不能使用它。 请注意,最新的android版本支持java.nio。*(ja

  • 我试图按照上一个答案中的建议设置和变量,但没有结果。

  • 我有一个多模块项目,所有模块都有一个公共的父pom和一个聚合器/构建pom。我试图使用maven版本插件来更新/设置我所有模块的版本,但它一直跳过子模块。 项目布局:-通用/pom.xml(build pom)-通用/Superpom/pom.xml(父pom)-模块1/pom.xml(模块1 pom)-模块2/pom.xml(模块2 pom) 普通/聚甲醛。xml: 我尝试将插件添加到构建pom