Maven编译时出现错误“不再支持源选项5。使用6或更高版本”

时间:2018-10-28 18:47:14

标签: eclipse maven testing testng

我遇到以下错误或$ mvn编译:

[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代码中添加属性,但是仍然遇到相同的错误。有人可以帮我解决这个问题吗?预先感谢

17 个答案:

答案 0 :(得分:28)

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

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

答案 1 :(得分:25)

我有同样的问题,问题出在属性上。检查项目中的JavaSE版本,它将显示在项目中的JRE System Library文件夹旁边。如果为1.5,则将引发错误。您很可能将拥有更新的版本,因此请检查该版本并进行更新。我已经根据您的代码在下面对其进行了更新。

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

答案 2 :(得分:3)

我遇到了同样的问题,我在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>

答案 3 :(得分:2)

对于新的Apache net Bean,它与SUPARNA SOMAN的建议有些不同

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

答案 4 :(得分:2)

在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>  

答案 5 :(得分:2)

我也遇到了同样的问题,并使用以下代码行解决了该问题:

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

答案 6 :(得分:1)

我认为您错了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 clean编译

或任何一种方式(日食ide)

  

右键单击运行项目maven> build>目标(编译)

答案 7 :(得分:1)

这对我有帮助:

  1. 右键单击项目。
  2. 单击构建路径。
  3. 单击“配置构建路径”。
  4. 它会打开一个Java构建路径窗口。
  5. 单击左侧的Java编译器。
  6. 它导航到Java Compiler窗口,根据您的jre版本(例如,如果Java版本为1.8,则设置Compiler遵从性级别) 然后选择1.8)作为选择。
  7. 单击[应用]按钮。
  8. 单击[确定]按钮。
  9. 右键单击项目> Maven>更新项目。
  10. 右键单击Project> Run As> Maven安装-pom.xml文件正在运行,并且将Java jar下载并安装到项目中。
  11. 右键单击项目>运行方式> Maven测试-pom.xml文件正在运行,并且将Java jar下载并安装到项目中。

然后您会收到Build Success消息,并且您的maven项目已成功创建。

答案 8 :(得分:1)

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

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

在 projectname.iml 中我发现了这一行:

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

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

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

答案 9 :(得分:0)

I Solved it this way 我面临同样的挑战,我所做的是去:

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

答案 10 :(得分:0)

这是来自较新的 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 版本(“<source>/<target> ... 注意:从 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>

答案 11 :(得分:0)

这两个选项都对我有用,以解决不再支持源选项 5。使用 6 或更高版本”在 Maven 编译中

打开 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>

答案 12 :(得分:0)

就我而言,运行 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 并且成功了。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

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

所以我遵循了这些说明和问题已解决

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

项目属性 enter image description here

源/二进制格式 enter image description here

清理并生成,然后运行项目

答案 15 :(得分:0)

在我的一个项目中,除了以上所有答案外,另一种尝试也可行: 只需在项目结构的“模块”部分中更改语言级别 [下图] [Language Level] 1

答案 16 :(得分:0)

在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

再试一次,现在行家是:

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