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

Java Maven创建具有相同依赖项的多模块,java,maven,Java,Maven,我正在尝试创建一个具有相同依赖项的多模块项目 例如,我有: Module A (parent) | Module B | Module C 模块B和C使用完全相同的依赖项,并且每个只包含一个类。我希望每个模块都构建自己的JAR。问题是,我不想构建胖jar(因为将来我会有很多这样的模块) 模块B和C是否有办法使用相同的依赖关系?我尝试了DependencyManager,但它不是我想要的,因为两个JAR都包含依赖项,我不想要 有没有办法做到这一点?也许通过一个只包含依赖项的模块D

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

例如,我有:

Module A (parent)
    | Module B
    | Module C
模块B和C使用完全相同的依赖项,并且每个只包含一个类。我希望每个模块都构建自己的JAR。问题是,我不想构建胖jar(因为将来我会有很多这样的模块)

模块B和C是否有办法使用相同的依赖关系?我尝试了DependencyManager,但它不是我想要的,因为两个JAR都包含依赖项,我不想要

有没有办法做到这一点?也许通过一个只包含依赖项的模块D,每个jar将使用“D.jar”?但是如何将模块B和C链接到使用D依赖项呢

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

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


此pom将包含您的依赖项xy。然后,您将模块的依赖关系赋予此pom(通过其组、工件和版本)。

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

我找到了答案

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

模块D将是一个不同的项目,包含uber Jar中的UTIL、common和所有依赖项。这将是一个家庭马文回购

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

这是我在DependencyManager中实现的,我在父模块中定义依赖项,并在子模块中引用这些依赖项。但是子模块的JAR将是一个包含所有这些依赖项的胖JAR。您是否得到所谓的胖JAR与您如何定义依赖项无关。这取决于您如何构建您的工件(是否具有依赖关系)。我知道,关键是我有2个JAR,其中包含2个不同的类,但每个JAR中都具有相同的依赖关系。我想删除dependencies的重复是的,问题是,我不希望依赖项在Jar中,而是希望Jar只包含依赖项(模块d)和B,C,不包含依赖项,但使用d