使用 IDEA 解决 Maven 项目循环依赖
正常情况下,循环依赖是很少见的,当很多个项目互相引用的时候,就可能出现循环依赖,一般根据错误信息也能解决循环依赖,这篇就是讲如何使用 IDEA 轻松的解决循环依赖问题。
打开项目依赖图
在可能出现循环依赖的项目上右键打开【Show Diagram…】,如下图:
两个项目依赖图的例子
一个简单的项目依赖图:
一个复杂的项目依赖图:
项目依赖图看着是不是很直观?
项目不一定存在循环依赖,如果存在循环依赖,就会在上面的图中出现【红色】的线。
观察项目中的红线
局部放大后:
正常情况,两个项目之间肯定只有一条线,如果出现这种来回两条线,肯定就是互相依赖了。这种依赖可能是两个项目直接依赖,也可能是通过其他项目导致的间接依赖。
这个图中的 api 项目不应该引用 service 项目,因此我们打开 api 项目。
查看有问题项目的 Maven 依赖树图
在 api 项目的 pom.xml 内容中右键可以打开 Maven 依赖树图,部分依赖图如下:
通过这个图,很明显的可以看到 api 项目通过 webservice 项目引入了 service 项目,因此在 pom 中找到 webservice 项目,添加排除项,例如:
<dependency>
<groupId>com.xxx</groupId>
<artifactId>xxx-webservice-service</artifactId>
<version>x.x.x</version>
<exclusions>
<exclusion>
<groupId>com.xxx</groupId>
<artifactId>xxx-sampinput-service</artifactId>
</exclusion>
</exclusions>
</denpendency>
排除后,再查看【项目依赖图】,就会发现循环依赖已经消除了。
通过 IDEA 直观的依赖图,可以很方便的解决循环依赖的问题。