在用IDEA进行java开发的时候,可能因为更改工程名或者其他原因,需要重新导入项目,这时候经常会遇到大片代码飘红,并显示”Cannot resolve symbol XXX”的报错信息,目前主要有以下解决方案
(1) 首先检查项目的External Libraries,如果没有pom文件中添加的那些依赖,在Maven Projects视图中双击Lifecycle里的clean,然后点刷新按钮Reimport,此时maven会去检查pom中还没有下载的依赖并进行下载。
(2) 如果刷新之后仍然没有下载所需要的jar包,可以尝试把pom文件中的依赖项删除、保存,然后再撤销,触发依赖的下载。
(3) 撤销之后也不管用,那么有可能是中间进行过IDEA版本的升级,spring boot继承的spring-boot-starter-parent版本不对,所以把它的版本改为当前IDEA默认的parent版本就行了。
(4) 在本地maven库中已经有了项目需要的jar包,但是代码中还是一样的报错信息,选择File下拉菜单里的Invalidate Caches/Restart清除缓存并重启IDEA。
(5) 仍然没解决,则进入Preferences,选择Build,Execution,Deployment下的Compiler,勾选Build project automatically,然后打开同目录下Build Tools,选择Maven下的Ignored Files,在右侧如果有勾选的pom文件,取消它们的勾选状态,点击Apply。
(6) 上面的方法全都尝试无果,那么还剩下最后一个可能性,就是maven项目在main包下面生成的一个叫main.iml工程配置文件,这个文件使原有的maven依赖没有发挥作用,所以删除了这个文件,就解决了。
总结:IDEA和Maven本身存在一些bug,在某些情况下没有达到我们预期的结果,在期待工具做的更好的同时,也要慢慢学会排查问题并积累经验,“孰能生巧”大概讲的就是这个道理。