Java 为什么Maven会生成此错误:“quot;。。。在-source 1.5中不受支持;?

Java 为什么Maven会生成此错误:“quot;。。。在-source 1.5中不受支持;?,java,maven,Java,Maven,今天早上Maven开始抱怨这个错误: 错误:在-source 1.5中不支持多捕获语句 奇怪的是,我正在使用JDK 7,这段代码已经构建了好几个星期了。我只是使用带有默认POM的m2e,没有指定编译器版本 以下是我的Maven版本信息: Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500) Java version: 1.7.0_03, vendor: Oracle Corporation Java home: C:\SDKs\Java\

今天早上Maven开始抱怨这个错误:

错误:在-source 1.5中不支持多捕获语句

奇怪的是,我正在使用JDK 7,这段代码已经构建了好几个星期了。我只是使用带有默认POM的m2e,没有指定编译器版本

以下是我的Maven版本信息:

Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: C:\SDKs\Java\jdk1.7.0_03\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
我可以通过使用Maven编译器插件来绕过它,如下所示:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

org.apache.maven.plugins
maven编译器插件
2.4
1.7
1.7

尽管如此,我还是想理解为什么Maven突然开始行为不端并要求使用编译器插件。

这很可能是您的环境问题,而不是Maven(即,您的JAVA_HOME环境变量已更改)。值得注意的是,无论如何都需要编译器插件。通过在pom中包含此编译器部分,您可以确保使用正确的编译器编译代码,而不管您的环境设置如何。

默认源/目标级别为1.5,这显然不支持Java 1.7语法


至于为什么会“突然”改变,您的m2e或项目配置中发生了一些变化。

您也可以使用以下步骤为Eclips用户解决此问题,也可以为IntelliJ工作-

右键单击项目并选择Buid Path,然后配置Build Path。。 选择Maven下的项目面。
然后选择Java版本为1.8并应用ok。

您总是在使用maven编译器插件。这只是配置它。