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

标签 maven cyclic-dependency

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

假设A是父项目,B和C是子项目。如果 B 依赖于 C 并且 C 依赖于 B,除了使用不同的项目之外,是否有其他方法可以解决循环依赖关系。

最佳答案

Maven不允许项目之间存在循环依赖,因为否则不清楚先构建哪个项目。所以你需要摆脱这个循环。一种解决方案是您已经提到的,创建另一个项目。另一种方法是将某些类(class)从 B 级移至 C 级,反之亦然(如果有帮助的话)。或者有时,如果不需要两个项目,将项目 B 和 C 合并到一个项目是正确的。

但是,如果不了解和分析项目为何相互依赖,就很难提出最佳解决方案。

所以我建议你可以使用像JDepend这样的工具或InteliJ分析工具来查找有问题的类,并根据它们为您的软件找到更好的设计。

大多数时候,我会创建诸如接口(interface)模块和实现模块之类的东西,这会消除大多数周期。 查看此线程中 Dormouse 的答案,并搜索依赖倒置原理以获取有关此主题的更多资源。

关于maven - 如何解决Maven中的循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468525/

相关文章:

Android Maven 插件 - 如何在部署后自动启动应用程序

spring - Maven:trustAnchors 参数必须非空且为 'parent.relativePath' @ InvalidAlgorithmParameterException @ Non-resolvable Parent POM

Haskell - 解决循环模块依赖

javascript - 具有新 ParentId 和 ChildId 的循环树

java-8 - Java 8 的循环依赖分析 - 用于自动构建

c++ - 可变类模板的循环模板依赖

java - 通过 Maven 或 Eclipse 使用和检查 Android 支持注释(无需 Android Studio)

java - Eclipse 项目无法识别 Swagger Codegen Artifact

java - Spring MVC Maven 项目中的 org.springframework.beans.factory.BeanCreationException

python - Python中的循环导入导致无法调用上层模块的函数