【随笔】idea编译报 "java: -source 1.5 中不支持 diamond 运算符" 的问题
前置情景:
1. idea导入maven项目后已确认配置的Java编译器版本统一且为1.8及以上
2. 项目pom文件中没有明确指定maven编译插件版本
3. 同样的配置有的项目可以正常编译,有的编译报错
4. 修改过idea默认的Java编译器相关配置
5. 按照网上其他方式修改配置后仍不生效
原因:
idea加载的maven项目可能不是使用1.8的JDK编写的,而我们修改了项目的Java编译器版本后并没有清除idea自动生成的iml文件(虽然我不知道里面包含什么,只知道这个文件是项目标识文件,但确实重新生成后就能够正常编译了...如果你已经尝试过其他常见办法仍不生效,不妨试试这个方法)
解决方案:
1. 手动删除项目目录下所有idea生成的.iml文件
2. 确保配置的Java编译器版本统一且为1.8及以上
3. 使用maven命令 mvn idea:module 重新生成 .iml 文件
4. 尝试编译
总结:
这个问题从出现到找方案尝试再到最终解决一共花费了将近大半个下午,本来我以为也是换换编译器版本就能解决的,结果就尬住了。如果没猜错应该是因为我引入的项目不是用1.8JDK开发的,虽然问题不大,但有时候不注意碰到着实恶心人,以后还是要注意这类工具自动生成的配置文件,多思考引发问题的原因。