Java Maven 项目“不再支持源选项 5。使用 6 或更高版本。”

Spa*_*gey 7 java intellij-idea maven java-11

我正在学习 Bryan Hansen 的 PluralSight 课程“Spring 框架:Spring 基础知识”。我完全按照演示进行操作(我相信),但收到错误消息“错误:java:不再支持源选项 5。使用 6 或更高版本。”。

我正在使用最新版本的 IntelliJ,具有以下配置:

  • 在“首选项 > 构建、执行、部署 > 编译器 > Java 编译器”下,我将项目字节码版本设置为 Java 11,并将每个模块字节码版本设置为“与语言级别相同”。
  • 在“文件 > 项目结构 > 项目”下,我将项目 SDK 设置为 11,并将项目语言级别设置为 11。
  • 我的 pom.xml 具有以下构建设置:

    <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>11</source>
                        <target>11</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>

Run Code Online (Sandbox Code Playgroud)

我看过其他一些类似的帖子,他们有时似乎将上述配置设置为 1.6 而不是 11,但我正在尝试密切关注本教程。我仍然对这里的差异感到好奇。

不确定是什么导致抛出此错误,据我所知,我已经正确设置了所有内容,但显然情况并非如此。任何帮助,将不胜感激。

Spa*_*gey 18

通过执行以下操作修复了此问题。

项目结构 > 模块(在项目设置下)> 将语言级别设置为 11

希望这可以帮助遇到同样问题的人。

  • 今天单靠上面的设置还是不行。我必须在 pom.xml 中显式添加以下属性: `&lt;properties&gt;` `&lt;java.version&gt;11&lt;/java.version&gt;` `&lt;maven.compiler.source&gt;11&lt;/maven.compiler.source&gt; ` &lt;maven.compiler.target&gt;11&lt;/maven.compiler.target&gt;` `&lt;/properties&gt;` (2认同)

Phi*_*ner 9

我正在关注 Jenkov 教程Your First Maven Project,并在尝试执行命令mvn package时遇到相同的错误。在本教程中,我们不使用 IDE,而是使用 CLI,并且只有一个pom.xml和一个HelloWorld.java文件,这两个文件都可以使用像Notepad这样的简单文本编辑器来创建。

我不完全理解,但我认为错误消息指的是正在调用的 Java 版本。如果这是意图,那么错误消息肯定可以设计得更好!如果我错了,希望有人能纠正我。

也许相关,我注意到我的系统上的某些操作默认采用 Java 1.5,即使我的 PC 上没有安装此版本的 Java。(例如,在 Eclipse 中创建新的 Maven 项目时。)

无论如何,明确指定 7 或更高版本的 java 版本似乎是答案。我的笔记本电脑上有 Java 15,因此我通过将以下内容添加到 pom.xml 来指定 Java 的 Java 15版本

<properties>
    <java.version>15</java.version>
    <maven.compiler.source>15</maven.compiler.source>
    <maven.compiler.target>15</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)

不过,我也尝试指定 1.7 或 1.8,这些也有效。

编辑:自从写这篇文章以来,我读到如果未指定版本,Maven 默认为 Java 1.5,但我不记得在哪里读到过这篇文章,也无法在 Maven 文档中找到关于此的内容。

  • 谢谢 - 这非常有帮助!特别是要添加到 pom.xml 的结构。谢谢你! (2认同)

gar*_*ong 7

您还可以<ProjectName>.iml通过更改以下行直接编辑该文件(如果您使用 IntelliJ,它会在您的项目文件夹中自动创建):

从:<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">

到:<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">

因为你的方法也意味着编辑这个文件。:)