为了账号安全,请及时绑定邮箱和手机立即绑定

Maven编译错误:(使用-source 7或更高版本启用菱形运算符)

Maven编译错误:(使用-source 7或更高版本启用菱形运算符)

一只萌萌小番薯 2019-10-21 11:02:48
我在IntelliJ,JDK1.8,maven 3.2.5中使用了maven。出现编译错误:使用-source 7或更高版本启用菱形歌剧。详细信息如下:  [ERROR] COMPILATION ERROR :   [INFO] -------------------------------------------------------------  [ERROR] TrainingConstructor.java:[31,55] diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)  [ERROR] DTM.java:[79,21] try-with-resources is not supported in -source 1.5  (use -source 7 or higher to enable try-with-resources)  [ERROR] ticons.java:[53,44] diamond operator is not supported in -source 1.5  (use -source 7 or higher to enable diamond operator)有什么建议么?还有其他配置可以设置此源级别吗?似乎它不使用Java 1.8。
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

检查您maven-compiler-plugin的配置方式,它应使用Java版本7或更高版本:


<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-compiler-plugin</artifactId>

    <version>3.1</version>

    <configuration>

        <source>1.7</source>

        <target>1.7</target>

    </configuration>

</plugin>


查看完整回答
反对 回复 2019-10-21
?
动漫人物

TA贡献1815条经验 获得超10个赞

解决方案1-在pom.xml中设置这些属性

<properties>

<maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

</properties>

解决方案2-配置Maven编译器插件(始终在pom.xml中)

<build>


<plugins>

    <plugin>

        <artifactId>maven-compiler-plugin</artifactId>

        <configuration>

            <source>1.7</source>

            <target>1.7</target>

        </configuration>

    </plugin>

</plugins>

...

为什么会发生

出现问题是因为


目前,默认源设置为1.5,默认目标设置为1.5,与运行Maven的JDK无关。如果要更改这些默认值,则应按照设置Java编译器的-source和-target中所述设置源和目标。


Maven编译器插件简介(直到3.3版)


以及最新的Maven版本:


还要注意,当前的默认源设置为1.6,默认目标设置为1.6,与运行Maven的JDK无关。强烈建议您按照设置Java编译器的-source和-target中所述,通过设置source和target来更改这些默认值。


Maven编译器插件介绍


这就是为什么更改JDK对源代码级别没有影响的原因。因此,您有两种方法可以告诉Maven使用哪个源级别。


要使用JDK版本?

如果您将目标设置为1.7(如本例所示),请确保mvn命令实际上是使用jdk7(或更高版本)启动的


IDE上的语言水平

通常,IDE使用maven pom.xml文件作为项目配置的源。在IDE中更改编译器设置并不总是会影响maven构建。因此,使项目始终可通过Maven进行管理(以及与其他IDE互操作)的最佳方法是编辑pom.xml文件,并指示IDE与maven同步。


查看完整回答
反对 回复 2019-10-21
?
隔江千里

TA贡献1906条经验 获得超10个赞

您必须更改配置:


<project>

  [...]

  <build>

    [...]

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.2</version>

        <configuration>

          <source>1.7</source>

          <target>1.7</target>

        </configuration>

      </plugin>

    </plugins>

    [...]

  </build>

  [...]

</project>

您应该了解source/tagetJavaC中的选项与JDK 1.8 / 1.7等的用法之间的区别。


除此之外,您还应该升级使用maven-compiler-plugin。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 1303 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信