解决或编译Maven中的循环依赖

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

Project Alice有一个pom.xml。 在它里面,pom说她被打包成一个jar子,虽然她是一个坚强的女人,但她依赖鲍勃。 项目鲍勃,作为一个补充,说他依赖爱丽丝。 因此循环依赖。

当然,在Alice上运行mvn compile说“Alice正在失踪Bob”。 鲍勃,真正的浪漫,如果你试着编译他,他也会想念爱丽丝。

既然没有其他人在场,他们都不会遵守,我正在寻找解决这个问题的方法。

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

  1. 嫁给他们,让他们成为一个maven项目。
  2. 打破他们的共同依赖

除了我不想宣传乱伦这一事实之外,还会制作父母pom并让Alice和Bob兄弟姐妹解决这个问题吗?

任何其他解决方案?

弄清楚爱丽丝和鲍勃彼此之间迫切需要的是什么,并将其称为 – 让我们称之为查理 – 作为自己独立的POM。 然后,爱丽丝和鲍勃依赖查理。

这里要注意的重要一点是,循环依赖性通常是由于某些模块包含的内容超出了它的需要。 鉴于Alice需要Bob和Bob需要Alice,有些东西可以从这两个模块中分离出来并作为第三个模块引入。

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