软件设计和循环Maven依赖

时间:2013-11-23 07:08:28

标签: java maven

我的应用程序设计存在问题。我有一个项目查看器应用程序,我们称之为V并想要使用编辑器项目扩展它,我们称之为E

E取决于许多类V,因为它提供了项目的图形预览。所以E有一个Maven依赖项E - > V。现在我想将E集成到V中,因为用户应该能够从查看器中启动编辑器。这意味着我还有一个Maven依赖V - > E,这会导致依赖循环。我尝试了不同的scope值,但无法打破循环。我怎样才能做到这一点?

V项目是一个非常单一且没有良好结构的代码,我不想分开它。在E项目中,我可以做任何我想做的事情(事实上它已经包含许多小项目)。

2 个答案:

答案 0 :(得分:1)

您需要编写视图代码以使用接口而不是类;无论如何,这是最佳实践。将相关的interface文件放在模块foo-api中,然后让foo-domainfoo-view依赖于foo-api

答案 1 :(得分:1)

一种方法是拆分每个项目的API部分(基本上是从另一个项目调用的接口)。这会给你这样的依赖:

v -> Vapi
E -> Vapi
V -> Eapi
E -> Eapi

并且没有周期。

如果您不想拆分V,这样的方案可能有效:

E -> V
E -> Eapi
V -> Eapi