Maven:传递 - 循环依赖 - 释放过程

时间:2013-01-07 02:39:54

标签: java git java-ee maven maven-2

这是我的项目结构,

Parent
^ ^ ^
| | |

A B C

项目A,B,C取决于父母。 Parent有一个依赖关系管理部分,它确定A,B和C的版本。

在发布过程中,我首先发布了父级,它将具有A,B,C的尚未发布版本。然后将A,B和C的父级更改为最新版本的父级。

A -> C, B->A and C->A

现在由于上述依赖性,我无法确定A,B和C的释放顺序。 如果我首先发布A,它会抱怨C的发布版本不可用(因为父级在其发布期间提前宣布了C版本)。我不能先释放C,因为它取决于A。

我有父母,A,B和C作为Git上的个人回购。有办法,我可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

解决此问题的唯一方法是删除A,B和C之间的循环依赖关系.Maven强制执行不存在循环依赖关系。要删除该圆,您必须将一对项目A,B和C的公共部分分解为一个新模块D.因此,如果您选择打开A和B之间的循环,它们将仅依赖于D

这样,您的发布过程也会变得更加简单,因为您可以在同一个作业中发布所有内容。