我们如何解决 Maven 循环依赖?
假设 A 是父项目,B 和 C 是子项目。如果 B 依赖于 C 并且 C 依赖于 B,除了拥有不同的项目之外,还有什么方法可以解决循环依赖关系。
我们如何解决 Maven 循环依赖?
假设 A 是父项目,B 和 C 是子项目。如果 B 依赖于 C 并且 C 依赖于 B,除了拥有不同的项目之外,还有什么方法可以解决循环依赖关系。
Maven 不允许项目之间的循环依赖,否则将不清楚首先构建哪个项目。所以你需要摆脱这个循环。一种解决方案是您已经提到的用于创建另一个项目的解决方案。另一种方法是将一些类从 B 移动到 C,反之亦然。或者有时如果不需要两个项目,将项目 B 和 C 合并为一个项目是正确的。
但是,如果不了解和分析您的项目为何相互依赖,就很难提出最佳解决方案。
因此,我建议您可以使用JDepend或InteliJ分析工具等工具来查找有问题的类,并根据它们为您的软件找到更好的设计。
大多数时候,我创建了一个接口模块和实现模块之类的东西,它摆脱了大多数周期。在此线程中查看 Dormouse 的答案并搜索依赖倒置原则以获取有关此主题的更多资源。
假设 A 项目依赖于 B,B 依赖于 A。
我将介绍我如何解决这些循环依赖问题。
我有两个相互包含的模块。我删除了每一方的依赖关系并设置了 RabbitMQ 消息系统并创建了直接交换。所以当我需要来自 module1 的东西时,我会向 RabbitMQ 发送消息并从 module2 获取响应和处理数据。我认为这是集成组件的更好方式,而且是松散集成。