执行mvn install报diamond operator is not supported in -source 1.5如何解决
错误原因
这个编译错误是因为Maven默认的maven-compiler-plugin插件未指定编译版本时,会默认使用JDK 1.5的编译规范,和本地安装的JDK版本无关。你本地虽然安装了JDK1.7/1.8,但Maven没有读取到对应版本配置,所以无法识别Java 7才引入的钻石运算符语法。项目可以正常运行是因为你本地IDE的运行配置直接调用了高版本JDK,没有走Maven的编译校验流程。
解决方案
方案一:通过properties全局配置编译版本(操作最简单)
在项目的pom.xml文件中添加properties配置,指定编译的源版本和目标版本:
<properties> <!-- 源代码使用的JDK版本 --> <maven.compiler.source>1.7</maven.compiler.source> <!-- 编译生成的字节码运行的JDK版本 --> <maven.compiler.target>1.7</maven.compiler.target> <!-- 如果使用JDK1.8,将上面两个值改为1.8即可 --> </properties>
方案二:在编译插件中显式指定版本(适合多模块等需要细粒度控制的场景)
在pom.xml的build插件节点中,配置maven-compiler-plugin的编译参数:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- 建议使用3.0以上的稳定版本 --> <version>3.8.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
生效操作
配置完成后执行mvn clean install重新编译即可。如果使用Eclipse/IDEA等IDE,需要同步刷新Maven配置:
- Eclipse:右键项目 -> Maven -> Update Project,勾选「Force Update of Snapshots/Releases」后确认
- IDEA:右键项目 -> Maven -> Reload Project
校验方法
可以执行mvn -v命令查看Maven绑定的JDK版本,确认和你本地安装的JDK版本一致,避免Maven调用了其他路径的低版本JDK。
内容的提问来源于stack exchange,提问作者marwa hussein
相关产品推荐
相关产品推荐

