我收到以下错误“不再支持源选项 5。使用 7 或更高版本”

我的 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.bharath</groupId>
  <artifactId>hellomaven</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hellomaven</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

我收到以下错误

无法在项目 hellomaven 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile):编译失败:编译失败:

[ERROR] Source option 5 is no longer supported. Use 7 or later.

[ERROR] Target option 5 is no longer supported. Use 7 or later.

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 'cmd' 未被识别为内部或外部命令,

如果我尝试将以下代码添加到我的 pom.xml 文件中

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

我得到以下错误

项目 (C:UsersDODDI GIRISHhellomavenpom.xml) 有 1 个错误 不可解析的 POM C:UsersDODDI GIRISHhellomavenpom.xml: 在结语中不允许开始标记但得到 p (位置: END_TAG 看到 ...rnrn<p... @19: 3)@ 第 19 行,第 3 列 -> 我的属性代码从第 19 行开始。我的整个 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.bharath</groupId>
  <artifactId>hellomaven</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hellomaven</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
<properties>
   <maven.compiler.source>16</maven.compiler.source>
   <maven.compiler.target>16</maven.compiler.target>
 </properties>

帮我解决这个问题。

提前致谢

stack overflow I am getting the following error "source option 5 is no longer supported .use 7 or later"
原文答案
author avatar

接受的答案

<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.bharath</groupId>
  <artifactId>hellomaven</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>hellomaven</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

属性应该在项目里面!!!

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

答案:

作者头像
<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">
.
.
.
<properties>
   <maven.compiler.source>16</maven.compiler.source>
   <maven.compiler.target>16</maven.compiler.target>
 </properties>
</project>

属性应该在项目内

作者头像

似乎如果您不指定编译器,Maven 会使用默认编译器。如果您没有安装,那么您将遇到问题。我所关注的课程从他们的 POM 文件中省略了 <properties></properties> 标记。我必须添加这些(在 <project></project> 标记内)以停止 mvn 抛出“不再支持源选项 5”。使用 7 或更高版本。例外。

此链接提供信息...

https://maven.apache.org/plugins/maven-compiler-plugin/

...我们从中学到...

另请注意,目前默认源设置为 1.7,默认目标设置为 1.7,与运行 Maven 的 JDK 无关。强烈建议您通过设置源和目标来更改这些默认值,如设置 Java 编译器的 -source 和 -target 中所述。

在命令行快速检查...

java --version
java 18.0.2 2022-07-19
Java(TM) SE Runtime Environment (build 18.0.2+9-61)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2+9-61, mixed mode, sharing)

..和...

mvn --version
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: C:apache-maven-3.8.6
Java version: 18.0.2, vendor: Oracle Corporation, runtime: C:Program FilesJavajdk-18.0.2
Default locale: en_GB, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

...因此,尽管 Maven 和 Java 看起来很和谐,但 Maven 的默认源/目标设置需要对 POM 文件进行修改...

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

...我们已经启动并运行。

或者,我们可以修改编译器插件。

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

如果您有多个项目挂在单个根目录下,您可能还想研究设置主/超级 POM。

相关问题