某天在项目开发ing,几次提交和切分支后,突然发现某个类IDEA提示各种红线,看提示是类找不到,而这个类去年就添加了,项目里是有的。而更奇怪的是,本地编译构建启动项目都没问题。
尝试如下操作:
- 刷新maven依赖,然后maven clean并且重新install,整个项目和下面子项目编译打包都没问题
- IDEA中关闭项目,重新File->Open打开项目
- File->Invalidate Caches/Restart,重启IDEA打开项目
问题仍然存在,该包下的所有类打开后,IDEA都划线错误提示。
点击Build菜单,发现里面Build Project和Compile是灰色禁用了,该类所在的包下所有类都是如此。
推测可能包在Project工程里有设置被排除了,在项目中的.iml文件中搜索该包名称,没有搜到。
对该包右键->Mark Directory As,发现里面是有1个Template Folder选项,并且是灰色的不可选;
而对其它正常的包,右键->Mark Directory As,里面有2个项目,Excluded和Template Folder,并且都可选。
尝试对该包右键->Refactor->Rename,修改名称时提示this file does not belong to the project
跟推测一致,于是把项目关闭,在终端中cd切换到工程目录:
ll -a
rm -rf .idea
把.idea工程配置文件删除,然后在IDEA中重新打开项目,问题解决!
分析原因可能某个操作不小心把该包在工程排除了,因此打开包下的类IDEA无法识别其中的依赖类,出现划线错误提示。
在学习Dubbo时也遇到了该问题,从master分支切换tag到2.6.6,引用dubbo-demo-api
工程里的DemoService
接口IDEA报错,删除工程下的.idea目录重新打开项目解决。