java - -source 1.5 错误中不支持 java 1.7+
问题描述
在 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>
解决方案
在您的 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>
推荐阅读
- c++ - 为什么 GCC 坚持不使用 xmm 寄存器进行 XOR?
- list - FLUTTER - 将列表的一部分映射到小部件中
- javascript - 如何获取用户名,以便可以使用 useLayoutEffect 将其放在页面标题中?
- c++ - 如何将二维数组作为参数传递?
- matlab - MATLAB Appdesigner-Sensor Fusion Toolbox 绘图问题
- amazon-web-services - 为 AWS MWAA 使用默认 VPC 与单独 VPC
- javascript - 尝试使用 JavaScript 自动填充模型字段但它不起作用
- javascript - 在每个设备上 React Native 相同的视图
- swift - SKScene 只能呈现一次
- sql - 如何在 Teradata SQL 中选择具有指定标题和循环重复值的行?