在执行Maven进行deploy打包部署时,报如下异常:

[ERROR] /D:/file/dqs_jx/src/main/java/com/dqs/controller/ReportController.java:[104,61] -source 1.5 中不支持 diamond 运算符
  (请使用 -source 7 或更高版本以启用 diamond 运算符)

该异常的常见情况有2个:1、JDK版本不一致,比如IDE中配置的JDK版本不一致。2、Maven配置错误,执行Maven打包的JDK版本不一致。

首先排查IDE相关的配置,这里以IDEA为例,查看项目的JDK(Ctrl+Alt+shift+S)配置,(File ->Project Structure->Project Settings ->Project )。

source 1.5 中不支持diamond运算符插图

首先这里要一致,比如都采用JDK1.8。

然后点击上图中Modules,查看工程的JDK配置。

source 1.5 中不支持diamond运算符插图(1)

其次还要查看java的compile配置,也就IDEA进行编译的版本设置。具体操作路径为:File–>Other Settings–>Default Settings–>Compiler–>Java Compiler

source 1.5 中不支持diamond运算符插图(2)

如果是第一种情况,确保上述三处一致,基本上问题就可以解决。而这三处的一致也是基本要求,否则还可能会引发其他的版本不一致问题。

Maven的JDK版本

第二种引起上述问题的原因是IDEA使用的Maven版本和本地的Maven版本不一致。比如IDEA中配置了自带的Maven版本,本地安装了另外一个Maven版本,此时两个Maven版本不一致,setting.xml配置文件内容也不一致,此时通过IDEA执行和通过本地的mvn命令执行,就有可能出现上述异常。

那么,首先就是排查Idea的maven版本及setting.xml与本地的是否一致。也就是说是否使用的同一个Maven,如果不是请修改一致。

打开setting.xml文件,找到其中的如下配置:

source 1.5 中不支持diamond运算符插图(3)

确保项目中使用的jdk版本和此处配置的jdk版本一致,上述异常也会正常解决。对应的配置如下:

<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile> 



source 1.5 中不支持diamond运算符插图(4)

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2020/07/28/source-1-5-diamond/