我们如何解决Maven循环依赖?
假设A是父项目,B和C是子项目。如果B依赖于C而C依赖于B,除了拥有不同的项目之外,还有什么方法可以解决循环依赖性。
Maven不允许项目之间存在循环依赖关系,因为否则不清楚首先要构建哪个项目。所以你需要摆脱这个循环。一个解决方案就是你已经提到的,创建另一个项目。另一个是将一些类从B移动到C,反之亦然。或者有时将项目B和C合并到一个项目是正确的,如果不需要其中两个项目。
但是,如果不了解和分析为什么您的项目相互依赖,那么建议最佳解决方案是很困难的。
因此,我建议您可以使用JDepend或InteliJ分析工具等工具来查找有问题的类,并根据它们为您的软件找到更好的设计。
大多数时候,我创建类似于接口模块和实现模块的东西,它摆脱了大多数周期。
创建一个新项目确实是一个解决方案。
依赖性倒置是第二种可能的解决方案。
有关非循环依赖原则,请参阅here。
和here的依赖倒置原则。