【问题标题】:Java Maven Project "Source option 5 is no longer supported. Use 6 or later."Java Maven 项目“不再支持源选项 5。请使用 6 或更高版本。”
【发布时间】:2020-04-28 07:48:57
【问题描述】:

我正在学习 Bryan Hansen 的 PluralSight 课程“Spring Framework:Spring Fundamentals”。我已经精确地关注了演示(我相信),但收到错误消息“错误: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>

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

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

【问题讨论】:

    标签: java maven intellij-idea java-11


    【解决方案1】:

    通过执行以下操作解决了这个问题。

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

    希望这对遇到相同问题的人有所帮助。

    【讨论】:

    • 如果您启用了 maven 自动导入,IntelliJ 应该根据 maven-compiler-plugin 设置为您执行此操作。
    【解决方案2】:

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

    发件人:&lt;component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5"&gt;

    收件人:&lt;component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"&gt;

    由于您的方法也意味着编辑此文件。 :)

    【讨论】:

      【解决方案3】:

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

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

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

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

      <properties>
          <java.version>15</java.version>
          <maven.compiler.source>15</maven.compiler.source>
          <maven.compiler.target>15</maven.compiler.target>
      </properties>
      

      不过,我也尝试过指定 1.7 或 1.8,它们也同样有效。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-03
        • 2019-04-01
        • 1970-01-01
        • 2021-07-03
        • 1970-01-01
        • 2018-08-08
        • 2019-10-28
        相关资源
        最近更新 更多