Maven创建具有相同依赖项的多模块

时间:2019-06-04 12:20:16

标签: java maven

我正在尝试创建一个具有相同依赖项的多模块项目。

例如,我有:

Module A (parent)
    | Module B
    | Module C

模块B和C使用完全相同的依赖项,并且每个模块仅包含1个类。我希望每个模块都构建自己的JAR。事实是,我不想构建胖子罐(因为将来我会有很多这样的模块)

模块B和C是否有使用相同依赖项的方法?我尝试了dependencyManagement,但这不是我想要的,因为两个罐子都包含依赖项,而我不想要那个。

有没有办法实现这一目标?也许通过使模块D仅包含依赖项,每个jar将使用“ D.jar”?但是如何链接模块B和C以使用D依赖项?

Module A (parent)
   | Module D
       | Module B
       | Module C

3 个答案:

答案 0 :(得分:1)

您可以自己编写一个单独的pom.xml作为工件。

此pom将具有您的依赖项 x y 。然后,将模块赋予此pom依赖关系(通过其组,工件和版本)。

答案 1 :(得分:0)

如果子模块可以在不依赖父模块的情况下工作,则可以将其创建为独立模块。即使按照您建议的方式,模块A的依赖关系也将通过D传递给B和C,这就是POM中的依赖关系管理的工作方式。

答案 2 :(得分:0)

我找到了答案,

模块A将管理依赖项版本(dependencyManagement) B和C将定义所需的依赖项

模块D将是一个差异项目,在uber Jar中包含utils,common和所有依赖项。它将在家庭Maven仓库中。

Module A (parent)
       | Module B
       | Module C
Module D
       | Utils
       | common