多模块maven项目的循环依赖

过去几周我一直在用 java 编写一个非常简单的区块链作为 Intellij 的 maven 项目。当我开始这个项目时,我对驻留在单个模块中的所有内容都感到满意,尽管从技术上讲需要构建两个工件才能使项目正常工作(应用程序/控制逻辑的可执行 .jar 和用于应用程序/控制逻辑的 .war所有通过 tomcat 容器部署的 p2p 内容)。我使用单独的配置文件来构建 .jar 和 .war,并手动执行/部署它们。

然而,我已经对此感到厌倦,并且相信将其拆分为一个多模块项目(一个 .war、.jar 和 .ear?也许……)是实现我的目标的唯一途径,即能够构建和使用单个命令一次执行/部署所有内容。我已经开始这样做了,但对两个子模块之间的循环依赖关系感到困惑。我在应用程序端有依赖于网络端的代码,在网络端有依赖于应用程序端的代码。我如何通过创建另一个模块并因此创建另一个 pom.xml 来解决这个问题?任何建议将不胜感激!请耐心等待,因为我仍然是 java/maven 的新手,这是我第一次真正破解具有任何复杂程度的应用程序。


慕尼黑5688855
浏览 200回答 1
1回答

MMTTMM

当你的子模块 c1 和 c2 相互依赖时,意味着一个类或包,那么公共包应该在一个单独的模块 c3 中。在 c1 和 c2 项目中添加 c3 作为依赖项。您不能将 c1 作为依赖项添加到 c2 中,将 c2 作为依赖项添加到 c1 中。因为当 maven 试图分析你的代码时,由于这种循环依赖,它无法找到首先构建哪个模块。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java