JDK9版本以上的maven多模块项目,进行module-info文件的依赖声明,IDEA抛出"Module not found: Module1"和"Package 'cn.example.util' is declared in the unnamed module, but module 'Module2' does not read it"问题的解决方法

环境IDEA:2021.2
JDK版本:17

只要是JDK9版本以上都会遇到一样的问题


产生问题的原因是由于JDK9使用了模块系统。
并且是maven多模块项目。

在这里可以看到module2项目依赖了module1项目,并且是模块间的依赖,而不是jar包的依赖方式。

项目的总体结构


解决方法:
第一个就是编辑MyTestingModule主项目下的pom.xml文件,去掉modules下的被依赖的module,重新加载maven项目即可。

上图的红框处就是被依赖的模块。

第二个方法就是只能在被依赖的模块module1下,新建个module-info文件,进行公开的API进行配置。

就是既然都是maven多模块项目了,那jdk版本都是一样的才对,比较推荐第二个方法,新建module-info进行配置。因为模块化系统的以后的刚需啊。
迟早都得面对。

2023/02/27补充: 我在IDEA 2022.3.2版本中,以上的问题统统都消失了,哈哈!!!

资源

JDK9文档首页

首页里有关于JDK9模块系统的文档操作。

posted @   星小梦  阅读(1542)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示