近日导入maven的多模块项目,
先说一下前提环境:jdk1.7 32位,maven2.1版本,各个项目模块的pom.xml配置的jdk有1.5,也有1.6 。
导入后进行maven install时发现出现 -source 1.6 中不支持 diamond 运算符 的异常,
异常提示出现错误的地方是因为类似这种写法。
搜索发现是因为这种写法是jdk1.7新特性才支持的写法,1.6不支持。参考文章:http://blog.csdn.net/aliaooooo/article/details/42536295。 之后将windows---preferences---java---compiler---compiler compliance level 改为1.7,各个模块,右键,properties--java compiler 同样都改为1.7,
因为各个模块各自pom中指定了版本,所以移除各个模块默认的JRE1.5或者1.6,都改为1.7保持一致。
再次maven install依旧报错 -source 1.6 中不支持 diamond 运算符 。 无数次clean等等,最终解决办法是在其中出现问题那个模块的pom.xml中把其指定的1.6改为1.7 ,此问题解决。
另外,在解决问题的过程中,代码出现过
"XX cannot be resolved to a type "的报错,参考文章:http://zhaoningbo.iteye.com/blog/1137215
和
Remove '@override' annotation 的报错,参考文章:http://blog.csdn.net/liuhhaiffeng/article/details/7178026。
最后,还有
XX cannot be resolved to a type "的报错 ,经检查是项目代码少了一些类,项目代码没有完整上传到svn。最后编译通过,所有问题解决。
一系列问题折腾很久,耽误不少时间。一方面是因为对maven 并不天熟悉,另外自己在解决问题中没有想过去改变代码 配置,毕竟是刚刚拷贝过来的,认为代码一点问题都没有,这也是一方面吧。尤其jdk版本不一致,我以为不能改变,增添不少苦恼 = =!下班回家!