【问题标题】:Why is Maven generating this error: "...is not supported in -source 1.5"?为什么 Maven 会生成此错误:“...在 -source 1.5 中不支持”?
【发布时间】:2020-07-22 15:06:08
【问题描述】:

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

error: multi-catch statement is not supported in -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>

不过,我想了解为什么 Maven 会突然开始行为不端并需要使用编译器插件。

【问题讨论】:

  • 您总是使用 maven-compiler-plugin。这只是配置它。
  • 可能maven-compiler-plugin 配置不正确,也没有被 maven 选中。

标签: java maven


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    默认的源/目标级别是 1.5,显然不支持 Java 1.7 语法。

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

    【讨论】:

      【解决方案3】:

      您也可以通过对 Eclips 用户使用以下步骤来解决此问题,并且也适用于 IntelliJ-

      右键单击项目并选择构建路径然后配置构建路径.. 选择 Maven 下的 Project Facets。 然后选择Java版本为1.8并应用ok。

      【讨论】:

        猜你喜欢
        • 2021-03-07
        • 2018-05-15
        • 2014-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        • 2021-04-27
        相关资源
        最近更新 更多