笔者在做代码重构的时候,以前记得运行正常的代码,如今一直报错,百思不得其解。然后发现居然运行一个简单的程序也发生了同样的报错信息。当时笔者的运行环境如下:
笔者报错时的运行环境:
JDK 13.0.2
Maven 3.6.3
IntelliJ IDEA 2020.1.2 (Ultimate Edition)
在笔者的摸索之下,这个报错的信息出现了如下几种:
Error : java: 不支持发行版本 5
Error : java: 不支持发行版本 13
Error : java: 不再支持源选项 5。请使用 6 或更高版本。
解决方法 1
(但这个方法的缺点是,每次刷新 Maven 目录、打开工程的时候都要设置一次。)
-
如图:
-
如图:
注意:图中的 Language level 要选择 11,哪怕你安装的是 JDK 11 以上的版本。
解决方法 2
在 Maven 项目中的文件 pom.xml
中设置。这可以选择在 Maven 插件中设置,也可以使用属性配置。
在属性中配置:
<project...>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
</project>
在插件中配置:
<project...>
<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>
</project>
解决方法 3
(这种方法可以免除反复配置)
-
修改 Maven 安装路径下的文件
setting.xml
(该文件的路径是 Maven 的安装路径(不是 Maven 的仓库路径)\conf\setting.xml),在该文件的元素<settings/...>
的子元素<profiles/...>
中添加子元素<profile/...>
。<profile/...>
中的具体内容如下:(注意:和上面类似的原因,下面的版本号要填 11,哪怕你安装的是 JDK 11 以上的版本。)
<profile> <id>development</id> <activation> <jdk>11</jdk> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion> </properties> </profile>
-
对 Maven 用户目录下的
setting.xml
文件也进行同样的修改。该setting.xml
文件的路径的默认值是C:\Users\当前用户的用户名\.m2
(如果此路径中没有该文件,则需要创建)。 -
如果使用了 IDE,还需要在 IDE 中导入上面的设置。这里以 IntelliJ IDEA 为例,导入上述配置文件的方法如下: