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

我在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。


一只萌萌小番薯
浏览 1315回答 3
3回答

至尊宝的传说

检查您maven-compiler-plugin的配置方式,它应使用Java版本7或更高版本:<plugin>&nbsp; &nbsp; <groupId>org.apache.maven.plugins</groupId>&nbsp; &nbsp; <artifactId>maven-compiler-plugin</artifactId>&nbsp; &nbsp; <version>3.1</version>&nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; <source>1.7</source>&nbsp; &nbsp; &nbsp; &nbsp; <target>1.7</target>&nbsp; &nbsp; </configuration></plugin>

动漫人物

解决方案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>&nbsp; &nbsp; <plugin>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>maven-compiler-plugin</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <source>1.7</source>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <target>1.7</target>&nbsp; &nbsp; &nbsp; &nbsp; </configuration>&nbsp; &nbsp; </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同步。

隔江千里

您必须更改配置:<project>&nbsp; [...]&nbsp; <build>&nbsp; &nbsp; [...]&nbsp; &nbsp; <plugins>&nbsp; &nbsp; &nbsp; <plugin>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.apache.maven.plugins</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>maven-compiler-plugin</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>3.2</version>&nbsp; &nbsp; &nbsp; &nbsp; <configuration>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <source>1.7</source>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <target>1.7</target>&nbsp; &nbsp; &nbsp; &nbsp; </configuration>&nbsp; &nbsp; &nbsp; </plugin>&nbsp; &nbsp; </plugins>&nbsp; &nbsp; [...]&nbsp; </build>&nbsp; [...]</project>您应该了解source/tagetJavaC中的选项与JDK 1.8 / 1.7等的用法之间的区别。除此之外,您还应该升级使用maven-compiler-plugin。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java