如何解决Maven中的循环依赖?

use*_*460 41 dependencies cyclic maven

我们如何解决Maven循环依赖?

假设A是父项目,B和C是子项目.如果B依赖于C而C依赖于B,除了拥有不同的项目之外,还有什么方法可以解决循环依赖性.

msz*_*ach 35

Maven不允许项目之间存在循环依赖关系,因为否则不清楚首先要构建哪个项目.所以你需要摆脱这个循环.一个解决方案就是你已经提到的,创建另一个项目.另一个是将一些类从B移动到C,反之亦然.或者有时将项目B和C合并到一个项目是正确的,如果不需要其中两个项目.

但是,如果不了解和分析为什么您的项目相互依赖,那么建议最佳解决方案是很困难的.

因此,我建议您可以使用JDependInteliJ分析工具等工具来查找有问题的类,并根据它们为您的软件找到更好的设计.

大多数时候,我创建类似于接口模块和实现模块的东西,它摆脱了大多数周期.

  • 定位依赖项的一种便宜技巧是删除遇到麻烦的依赖项,并查看编译器在哪里抱怨。 (3认同)

Dor*_*use 8

创建一个新项目确实是一个解决方案.

依赖性倒置是第二种可能的解决方案.

请参阅此处了解非循环依赖原则.

这里的依赖倒置原则.