Maven JAR模块,包括发布中的依赖项?

时间:2017-05-26 12:59:38

标签: java maven jar module architecture

我正在使用Java monolith将其拆分为几个可重用的模块。

我开始意识到依赖树可能存在一些问题。

为了解释我的问题,让我们设想一个包含4个依赖项的简单项目:

 Proj
    ProjA
    ProjB
    ProjC
    ProjD

想象一下我的主要项目依赖项之一--ProjA - 需要一个主要的项目依赖项--ProjD-。

 ProjA
    ProjD
    ProjF

防止类路径中的重复类和其他依赖项问题的最佳做法是什么?

您是否应该在JAR模块中包含依赖项并尝试按设计最小化它们?在这种情况下,重写我的子模块以使这种情况不会发生。

或者你应该构建没有依赖关系的JAR模块,只将它们包含在父" root"项目?

1 个答案:

答案 0 :(得分:0)

周期:

Maven将突出显示依赖关系树中是否存在循环。如果你看到周期,你将不得不重构模块。

构建订单:

Maven将决定所有模块的构建顺序,考虑哪个模块依赖于其他模块。因此,您在父pom中指定的模块顺序并不重要。

Comman第三方库:

如果您有不同模块之间共享的任何第三方依赖关系,最好的方法是将该依赖关系保留在父项目的pom中。