问题现象
在 IDEA 里清除缓存并重启后,常会遇到两个让人很头疼的问题:
- 某个 Module 依赖不了 JAR 包,或者依赖不了其他 Module,结果就是这个模块里大量代码直接划红线。
- Module A 没有优先使用项目中的 Module B 编译,而是用了 Module B 打出来的 JAR。这样一来,哪怕你在 Module B 里新增了代码,Module A 也看不到,必须重新
install之后才会生效。
这种情况通常不是'包没下载下来',而是 IDEA 的模块依赖关系没有正确建立。也就是说,文件其实都在本地,但编辑器没有把它们纳入当前模块的编译视图里。把同一套项目导入到 Eclipse 后正常,也侧面说明问题出在 IDEA 的模块配置上。
处理方法
先把缺失的 JAR 依赖补回去
进入 File → Project Structure → Modules,选中出问题的那个 Module,再切到右侧的 Dependencies。
如果这里你只看到一个 JDK,其他 JAR 都没列出来,基本就能确认:这个 Module 根本没有把对应的库依赖挂上。
这时点右边的 +,选择 Library,把需要的 JAR 选进去,再点 Add Selected。补完之后,这个模块里大部分红线通常就会消失。
图示参考



再把 Module 依赖显式配出来
如果你希望 Module A 优先引用项目里的 Module B,而不是引用 Module B 打出来的 JAR,就继续在同一个 Dependencies 页面里点 +,选择 Module Dependency。
然后选中你要依赖的那个 Module,确认后点 OK,最后再点 Apply。
这样配置完成后,IDEA 在编译时就会优先走模块间依赖,Module B 里新加的代码也能被 Module A 直接识别到,不必每次都重新打包安装。

小结
这类问题本质上都不是代码写错,而是 IDEA 的模块依赖没有配好。遇到'JAR 明明在、本地也有,但就是引用不到'或者'多模块工程里改了子模块,父模块却不生效'时,优先检查 里的 配置。大多数情况下,把 Library 和 Module Dependency 重新挂正确,问题就会恢复正常。

