首先介绍下项目结构,开发采用intell idea IDE,项目管理maven,早上来更新了下项目,突然报了一个错误:
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project xxx: Compilation failure: Compilation failure:
[ERROR] X:\xxx.java:[32,60] 错误: -source 1.6 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
解决步骤:
1、首先提示我jdk level过低,因为代码中用到了diamond 类型推断,这是jdk1.7的一个特性,在jdk1.7之前,我们如果new一个list对象,要这样写
List<Student> list = new ArrayList<Student>();
但如果使用了推断,则可以直接写为:List<Student> list = new ArrayList<>();
解决:
2、如果设置了再mvn clean还是报上面那个错,这个时候,可能是你的maven build没有指定jdk版本
<build>
<pluginManagement>
<plugins>
<!-- 设置编译jdk的版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
3、如果上面两步设置好了,还是报错,这时候就要看看maven的依赖包,我早上遇到的问题是因为我更新别人代码后,别人把我pom.xml加的依赖覆盖了,所以报错,然后手动把需要的依赖加上去就可以了
希望可以帮到别人!