在 Maven 中解析或编译循环依赖关系

2022-09-01 23:53:42

我有一个有趣的问题,我不是在寻找解决方案,而是在寻找解决方案。

爱丽丝计划有一个pom.xml。在里面,pom说她被包装成一个罐子,虽然她是一个坚强的女人,但她依赖于鲍勃。鲍勃项目是一个互补者,他说他依赖爱丽丝。因此,循环依赖关系。

当然,在爱丽丝身上奔跑说“爱丽丝失踪了鲍勃”。鲍勃,那个真正的浪漫主义者,如果你试图编译他,他也会想念爱丽丝。mvn compile

由于没有对方在场的情况下,两者都不会遵守,我正在寻找解决这个问题的方法

我知道只有两种方法可以解决这个问题:

  1. 与他们结婚,让他们成为一个专家项目。
  2. 打破他们的共同依赖

除了我不想提倡之外,做一个父母pom并让Alice和Bob兄弟姐妹解决这个问题吗?

还有其他解决方案


答案 1

弄清楚爱丽丝和鲍勃迫切需要从彼此那里得到什么,并介绍它 - 让我们称之为查理 - 作为自己独立的POM。然后,让爱丽丝和鲍勃依靠查理。

这里需要注意的一点是,循环依赖关系经常出现,因为某些模块包含的比它需要的更多。鉴于爱丽丝需要鲍勃,鲍勃需要爱丽丝,有一些东西可以从这两个模块中分离出来,并作为第三个模块引入。

这可能不是最有吸引力的解决方案,但它是最干净的。然后,您将更多的模块化引入系统,并有更多的模块重构机会。


答案 2

推荐