java 1.7+;源代码1.5错误中不支持

java 1.7+;源代码1.5错误中不支持,java,maven,configuration,version,maven-compiler-plugin,Java,Maven,Configuration,Version,Maven Compiler Plugin,在eclipse中创建Maven安装时,我遇到了源代码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 i

在eclipse中创建Maven安装时,我遇到了源代码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>

org.apache.maven.plugins
maven战争插件
3.2.3
1.8
1.8
UTF-8

在pom.xml文件中添加以下行可以解决您的问题

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

1.8
1.8
如果您可以考虑提供给您的建议。您将有两个选项可供选择:

选项1)如果保留maven war插件。将版本更新为最新版本,然后添加带有编译器信息和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>

1.8
1.8
UTF-8
..
org.apache.maven.plugins
maven战争插件
3.3.1
..
选项2)如果用maven编译器插件替换maven war插件**,则无需在属性**中添加/替换源、目标和编码。请确保将版本更新为最新版本:

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

..
org.apache.maven.plugins
maven编译器插件
3.8.1
1.8
1.8
UTF-8
..

请升级您的maven编译器插件版本……此配置是为maven war插件提供的,该插件不处理此类配置。该插件是maven编译插件,而不是。。。为什么要单独配置maven war pugin?此外,如果您想设置编码,请设置属性:
UTF-8
,这将使配置中的
多余。我不想用“maven编译插件”替换“maven war插件”。原因是当我升级到jdk 1.9+时,它会给我一个警告“发生了非法的反射访问操作”。感谢K对sourceEncoding的建议。我会试试看:)请听从卡马尔拜斯的建议。您错误地使用了maven war插件。配置需要在maven编译器插件中。错误消息告诉您maven编译器插件有问题。这是您需要修复的配置,而不是Mave-WAR插件。请考虑使用一个更好的IDE,它可以帮助您解决这样的问题。