-source 1.5 错误中不支持 java 1.7+
Posted
技术标签:
【中文标题】-source 1.5 错误中不支持 java 1.7+【英文标题】:java 1.7+ is not supported in -source 1.5 errors 【发布时间】:2021-03-07 12:35:58 【问题描述】:在 Eclipse 中创建我的 Maven 安装时,我遇到了 -source 1.5 中不支持的各种 java 错误。我的代码没有问题。
错误如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1
[23,62] multi-catch statement is not supported in -source 1.5
[241,29] try-with-resources is not supported in -source 1.5
[156,64] diamond operator is not supported in -source 1.5
我的 pom 配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
【问题讨论】:
请升级您的 maven-compiler-plugin 版本....该配置是针对不处理此类配置的 maven-war-plugin 给出的。该插件是 maven-compile-plugin 而不是...为什么要配置单独的 maven-war-pugin?此外,如果您想设置编码,请设置属性:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
,这将使您的配置中的<encoding>..</encoding>
变得多余。
我对用“maven-compile-plugin”替换“maven-war-plugin”不感兴趣。原因是当我升级到 jdk 1.9+ 时,它会给我一个警告“发生了非法反射访问操作”。感谢 K 关于 sourceEncoding 的建议。我会试试的:)
请听从 khmarbaise 的建议。您错误地使用了 Maven 战争插件。配置需要在maven编译插件中。
错误信息告诉你maven-compiler-plugin有问题。那是您需要修复的配置,而不是 maven-war-plugin。
考虑使用更好的 IDE,它可以帮助您解决此类问题。
【参考方案1】:
在您的 pom.xml 文件中添加以下行应该可以解决您的问题。
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
如果您可以考虑提供给您的建议。您将有 2 个选项可供选择:
选项 1) 如果您保留 maven-war-plugin。将版本更新到最新,然后添加带有编译器信息和 sourceEncoding 的属性,但删除配置行:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
..
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
</plugin>
..
</build>
选项 2) 如果将 maven-war-plugin 替换为 maven-compiler-plugin ** 无需向属性添加/替换源、目标和编码**。确保将版本更新到最新:
<build>
..
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
..
</build>
【讨论】:
以上是关于-source 1.5 错误中不支持 java 1.7+的主要内容,如果未能解决你的问题,请参考以下文章
maven 出现错误 -source 1.5 中不支持 diamond 运算符
java: -source 1.5 中不支持 diamond 运算符