idea搭建微服务多模块项目时遇到的问题汇总

目录

1.Module "XXX" does exist

2.Module "A" must not contain source root "xxx". The root already belongs to module "B"

(1)分析

(2)解决方法

 3.子模块的maven管理器呈灰色、yaml文件的小图标不正常、无法使用引入包中的功能(比如springboot依赖的@SpringBootApplication注解)

(1)异常状态下的截图

 (2)分析

(3)解决方案


1.Module "XXX" does exist

该问题常出现在执行【删除某个子模块后,又新建一个同名子模块】这种操作。

解决方法:进入父工程的"Load/Unload Modules"选项,然后将对应module unload即可。

idea搭建微服务多模块项目时遇到的问题汇总_第1张图片

idea搭建微服务多模块项目时遇到的问题汇总_第2张图片

2.Module "A" must not contain source root "xxx". The root already belongs to module "B"

报错信息如下图

idea搭建微服务多模块项目时遇到的问题汇总_第3张图片

(1)分析

一个maven项目/模块下的目录通常分为:Sources、Tests、Resources、TestResources、Excluded这几种,如下图所示:

idea搭建微服务多模块项目时遇到的问题汇总_第4张图片

对于多模块项目而言,为了便于管理,通常会按照【父模块+子模块】这种方式构建项目。

父模块用于指定各种开发包的版本号,只起到约定的作用,自身在编译时不会引入开发包;

子模块继承父模块中的配置信息,自动进行版本仲裁,在编译时会正式引入依赖中规定的各类包。

知道这些以后,再看报错信息:“Module "A" must not contain source root "xxx". The root already belongs to module "B",可知 source root 这类目录发生了重复,那么一定是父模块的目录结构出了问题,因为父模块只需保留pom.xml文件即可。

(2)解决方法

将父模块Modules设置中的Source Folders、Test Sources Folders等全部删除即可,下面两张图是正常的项目Modules配置:

idea搭建微服务多模块项目时遇到的问题汇总_第5张图片

idea搭建微服务多模块项目时遇到的问题汇总_第6张图片

 3.子模块的maven管理器呈灰色、yaml文件的小图标不正常、无法使用引入包中的功能(比如springboot依赖的@SpringBootApplication注解)

(1)异常状态下的截图

具体表现形式如下:

①maven管理器呈现灰色

idea搭建微服务多模块项目时遇到的问题汇总_第7张图片

②yml文件前的图标异常

idea搭建微服务多模块项目时遇到的问题汇总_第8张图片

 (2)分析

如果模块自身的pom.xml没有写错的话,那么问题就不是项目的问题,而是maven管理器的问题。新建的maven项目都会有一个与之匹配的包管理器(有独立的生命周期),现在这个管理器呈现灰色说明其本身肯定是在某个地方被关了或者屏蔽了,从而造成无法使用当前模块依赖中的功能这一后果。

(3)解决方案

进入当前项目的setting中,找到Maven的Ignored Files配置,可以发现这里的屏蔽列表里把一个模块给勾选了,那么将其取消勾选即可,然后保存退出。

idea搭建微服务多模块项目时遇到的问题汇总_第9张图片

接着在maven管理器中点击刷新

idea搭建微服务多模块项目时遇到的问题汇总_第10张图片

 如此一番处理后,可以发现子模块恢复正常了,如下图:

idea搭建微服务多模块项目时遇到的问题汇总_第11张图片

你可能感兴趣的:(maven,SpringCoud,intellij-idea,maven,微服务)