我正在使用Java monolith将其拆分为几个可重用的模块。
我开始意识到依赖树可能存在一些问题。
为了解释我的问题,让我们设想一个包含4个依赖项的简单项目:
Proj
ProjA
ProjB
ProjC
ProjD
想象一下我的主要项目依赖项之一--ProjA - 需要一个主要的项目依赖项--ProjD-。
ProjA
ProjD
ProjF
防止类路径中的重复类和其他依赖项问题的最佳做法是什么?
您是否应该在JAR模块中包含依赖项并尝试按设计最小化它们?在这种情况下,重写我的子模块以使这种情况不会发生。
或者你应该构建没有依赖关系的JAR模块,只将它们包含在父" root"项目?
答案 0 :(得分:0)
周期:
Maven将突出显示依赖关系树中是否存在循环。如果你看到周期,你将不得不重构模块。
构建订单:
Maven将决定所有模块的构建顺序,考虑哪个模块依赖于其他模块。因此,您在父pom中指定的模块顺序并不重要。
Comman第三方库:
如果您有不同模块之间共享的任何第三方依赖关系,最好的方法是将该依赖关系保留在父项目的pom中。