java-如何修复此Maven依赖地狱

我们有一个Java 8 Maven项目,在过去的几个月中变得很大,并且构建变得复杂(错误).

 

当前的结构如下所示:

 

git repo 1:
    module 1:
        sub-module A
            depends on: sub-module C
        sub-module B
            depends on: sub-module A

git repo 2:
    module 2:
        sub-module C
        sub-module D
            depends on: sub-module A

这是从空的.m2 maven目录开始时的当前构建过程:

>首先,清洁安装模块2(在子模块D上失败).
>然后清洁安装模块1,再次清洁安装模块2.

我真的不知道这种问题的名称,也不知道解决此问题的标准解决方案是什么.
目标是能够一步一步构建项目.

我们是否应该合并两个git存储库并为模块1和2创建一个大型Maven模块?

最佳答案

似乎您具有循环/循环依赖性,其中repo1取决于repo2,repo2取决于repo1,这显然是一个坏主意.

 

您有两个选择:

>将您的“库”模块(模块A和C)放入它们自己的单独git存储库中,以消除循环依赖项(即“鸡或蛋”问题)
>为所有内容提供一个(整体)多模块构建

两种方法都有优点和缺点

你可能感兴趣的:(java-如何修复此Maven依赖地狱)