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



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

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

当然,在爱丽丝身上运行mvn compile说"爱丽丝想念鲍勃"。而鲍勃,那个真正的浪漫主义者,如果你试着编译他,他也想念爱丽丝。

由于没有另一个在场,两者都不会遵守,我正在寻找解决此问题的方法

我知道如何解决这个问题的方法只有两种:

  1. 嫁给他们,让他们成为一个专家项目。
  2. 打破他们的相互依赖

除了我不想提倡之外,做一个父母pom,让爱丽丝和鲍勃兄弟姐妹解决这个问题吗?

还有其他解决方案吗

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

这里要注意的重要一点是,循环依赖关系通常是由于某些模块包含的超出其需要的。 鉴于 Alice 需要 Bob,而 Bob 需要 Alice,因此可以从这两个模块中分离出来,并作为第三个模块引入。

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