我正在尝试创建一个具有相同依赖项的多模块项目。
例如,我有:
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
答案 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