【问题标题】:Error "Source option 5 is no longer supported. Use 6 or later" on Maven compileMaven 编译时出现错误“不再支持源选项 5。使用 6 或更高版本”
【发布时间】:2019-04-01 18:17:48
【问题描述】:

我在$ mvn compile 收到以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Sym360: Compilation failure: Compilation failure: 
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
[ERROR] -> [Help 1]

这是我pom.xml的代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.test.app</groupId>
 <artifactId>Tset</artifactId>
 <packaging>jar</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>Test</name>
 <url>http://maven.apache.org</url>

 <properties>
   <maven.compiler.source>6</maven.compiler.source>
   <maven.compiler.target>1.6</maven.compiler.target>
 </properties>

<build>
<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.22.1</version>
    </plugin>
  </plugins>
</pluginManagement>
</build>
<dependencies>

<!-https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium- 
java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.14.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency>

我尝试在pom.xml 代码中添加属性,但仍然遇到同样的错误。有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

  • Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 这是一个相当旧的版本。还考虑迁移到 3.8.0。在这种情况下,您可以开始使用属性maven.compiler.release = 6,这是首选的编译方式,但需要 JDK 9 及更高版本
  • 我尝试添加 org.apache.maven.pluginsmaven-compiler-plugin3.8.061.8
  • 但仍然收到错误@RobertScholte

标签: eclipse maven testing testng


【解决方案1】:

对我有帮助的是 pom.xml 文件中的这些行

<properties>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
</properties>

【讨论】:

  • 用例如替换 1.8 11 如果你的目标是 jdk 11
  • 我知道这行得通,但我不明白为什么 maven 使用它不支持的默认源值?
【解决方案2】:

在我的一个项目中,除了上述所有答案之外,另一种尝试也有效: 只需在 Project Structure 的 Modules 部分更改 Language level [下图] []1

【讨论】:

  • 这种莫名其妙的巫毒,让你想转行
  • 请说明这是什么IDE。
【解决方案3】:

我有同样的问题,问题出在属性上。检查项目中的 JavaSE 版本,它将显示在项目中的 JRE System Library 文件夹旁边。如果是 1.5,那么它会抛出一个错误。很可能您将拥有更新的版本,因此请检查版本并进行更新。我根据您的代码在下面更新了它。

<properties>
   <maven.compiler.source>1.6</maven.compiler.source>
   <maven.compiler.target>1.6</maven.compiler.target>
 </properties>

【讨论】:

    【解决方案4】:

    我认为你的 pom.xml 有误:

    <properties>
       <maven.compiler.source>6</maven.compiler.source>
       <maven.compiler.target>1.6</maven.compiler.target>
     </properties>
    

    改为:

    <properties>
       <maven.compiler.source>1.6</maven.compiler.source>
       <maven.compiler.target>1.6</maven.compiler.target>
     </properties>
    

    现在取决于您是否使用命令行使用:

    mvn 干净编译

    或任何一种方式(eclipse ide)

    右键单击项目 Run with maven>build>Goal (compile)

    【讨论】:

    • [不正确]!!!源和目标版本“1.11”无效。它必须是 11 而不是 1.11
    • 我遇到了同样的错误。我正在使用 java 11 并生成 1.8 兼容代码。将这两个属性都设置为 1.8 解决了这个问题。我使用“mvn clean package”命令创建 jar 文件。
    【解决方案5】:

    我有同样的问题,我在 pom.xml 中添加了以下配置,它可以工作。

    <build>
       <plugins>
       <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
       </plugins>
       </build>
    

    【讨论】:

    • 这解决了我的 sonarqube 运行问题
    【解决方案6】:

    这对我有帮助:

    1. 右键单击项目。
    2. 点击构建路径。
    3. 点击配置构建路径。
    4. 它会打开一个 Java 构建路径窗口。
    5. 点击左侧的 Java 编译器。
    6. 它导航到 Java 编译器窗口,在该窗口中设置编译器合规级别是根据您的 jre 版本设置的(例如,如果 java 版本是 1.8 然后选择 1.8) 作为选择。
    7. 点击[应用]按钮。
    8. 点击[确定]按钮。
    9. 右键单击项目 > Maven > 更新项目。
    10. 右键单击 Project > Run As > Maven install -- pom.xml 文件正在运行,java jars 已下载并安装到项目中。
    11. 右键单击 Project > Run As > Maven Test -- pom.xml 文件正在运行,java jars 已下载并安装到项目中。

    然后你会收到 Build Success 消息,你的 maven 项目就创建成功了。

    【讨论】:

    • Eclipse 能够自动执行此操作。第 9 步应该是唯一要做的事情,假设 JDK 支持 1.8
    【解决方案7】:

    在 pom 中添加以下代码将解决问题

     <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
      </properties>
      <profiles>  
    

    【讨论】:

      【解决方案8】:

      我遇到了同样的问题,并用下面的代码行解决了:

      <properties>
         <maven.compiler.source>1.6</maven.compiler.source>
         <maven.compiler.target>1.6</maven.compiler.target>
       </properties>
      

      【讨论】:

        【解决方案9】:

        对于新的 Apache 网络 Bean,它与 SUPARNA SOMAN 的建议有点不同

        • 右键单击您的项目 -将鼠标悬停在“set configuration”上并单击customize configuration -.一个新的对话框打开....
        • 在类别所在的左角,点击“Source
        • 在下面页面的选择表中,选择您需要的JDK版本----最后一步的图片。the last step required to change jdk version

        【讨论】:

          【解决方案10】:

          在 MacOS 上我有多个版本

          user> ls /Library/Java/JavaVirtualMachines/
          jdk-11.0.4.jdk      jdk-12.0.2.jdk      jdk1.8.0_221.jdk
          

          并且 JAVA_HOME 未正确定义,因此 Maven 使用了 jdk-12。我有 jdk-11、jdk-8 和 jdk-12。

          user> mvn -version
          Apache Maven 3.6.1 
          Maven home: /usr/local/Cellar/maven/3.6.1/libexec
          Java version: 12.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
          Default locale: XXX, platform encoding: UTF-8
          OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
          

          所以:

          定义 JAVA_HOME 以使用 jdk-8。

          export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
          

          再试一次,现在maven是:

          user> mvn -version
              Maven home: /usr/local/Cellar/maven/3.6.1/libexec
              Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/jre
          

          构建是:

          [INFO] BUILD SUCCESS
          

          【讨论】:

            【解决方案11】:

            这是对我有帮助的解决方案:

            我在错误源选项 5 不再支持,使用 6 或更高版本时遇到同样的问题

            所以我按照这些说明和问题解决了

            1. 打开项目属性(文件菜单)
            2. 将源/二进制格式更改为最新版本(在我的情况下为 JDK 7)

            项目属性

            源/二进制格式

            清理并构建,然后运行项目

            【讨论】:

              【解决方案12】:

              以上解决方案都不适合我。

              由于某些原因,名为我的 project.iml 的文件已更改。发现之前subversion仓库提交的不同...

              在 projectname.iml 中我找到了这一行:

              <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_5">
              

              我所要做的就是将其更改为 11

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

              【讨论】:

                【解决方案13】:

                如果在 Eclipse 中,请单击项目并转到属性。在那里搜索 maven 并配置 jdk 更高版本(1.7 及更高版本)并应用。现在尝试 Maven 安装。

                【讨论】:

                  【解决方案14】:

                  就我而言,运行 MacOS Big Sur 和 JDK 版本 15,我在如下所示的 pom.xml 文件中添加了以下代码。我为我的 JDK 版本添加了 15

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

                  然后我重新运行$ mvn clean wildfly:deploy,它成功了。

                  【讨论】:

                    【解决方案15】:

                    这两个选项都为我解决了不再支持源选项 5 的问题。在 Maven 编译中使用 6 或更高版本

                    打开 pom.xml 文件

                    选项1:添加构建标签

                    选项2:添加属性标签

                    <project>
                        <groupId>com.pluralsight</groupId>
                        <artifactId>HelloWorld</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <modelVersion>4.0.0</modelVersion>
                        <packaging>jar</packaging>
                        
                        <build>
                            <plugins>
                                <plugin>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-compiler-plugin</artifactId>
                                    <version>3.8.0</version>
                                    <configuration>
                                        <release>12</release>
                                    </configuration>
                                </plugin>
                            </plugins>
                        </build>    
                    </project>
                    
                    OR
                    
                    <project>
                        <groupId>com.pluralsight</groupId>
                        <artifactId>HelloWorld</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <modelVersion>4.0.0</modelVersion>
                        <packaging>jar</packaging>
                    
                        <properties>
                             <maven.compiler.source>1.6</maven.compiler.source>
                             <maven.compiler.target>1.6</maven.compiler.target>
                        </properties> 
                    </project>
                    

                    【讨论】:

                    • 请添加一些关于您的代码的 cmets 以及它如何回答问题。
                    【解决方案16】:

                    这是来自较新的javac 的消息,例如:

                    $ java -version
                    openjdk version "11" 2018-09-25
                    
                    $ javac -source 1.5 -target 1.5 Test.java
                    error: Source option 5 is no longer supported. Use 6 or later.
                    error: Target option 1.5 is no longer supported. Use 1.6 or later.
                    

                    所以,显然您使用的是更新的 JDK 版本和 3.8.0 之前的 Maven 版本(“&lt;source&gt;/&lt;target&gt; ... 注意: 自 3.8.0 起,默认值已从1.5 至 1.6")。您使用的maven-compiler-plugin:3.1from April 2013

                    有两种可能:

                    1. 将您的 Maven 版本更新到最新版本(我建议这样做)

                    2. Setting the Java Version in Maven:

                    2.2. Java 9 及更高版本

                    ...

                    <properties>
                       <maven.compiler.release>...</maven.compiler.release>
                    </properties>
                    

                    【讨论】:

                      【解决方案17】:

                      我面临同样的挑战,我所做的就是去:

                      1. 文件
                      2. 项目结构
                      3. 模块
                      4. 将编译 SDK 更改为 30(当时最新)
                      5. 构建工具 30.0.3(最新)
                      6. 源代码兼容性 (1.8 Java 8)
                      7. 目标兼容性 (1.8 Java 8)

                      【讨论】:

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