我的应用程序设计存在问题。我有一个项目查看器应用程序,我们称之为V
并想要使用编辑器项目扩展它,我们称之为E
。
E
取决于许多类V
,因为它提供了项目的图形预览。所以E
有一个Maven依赖项E
- > V
。现在我想将E
集成到V
中,因为用户应该能够从查看器中启动编辑器。这意味着我还有一个Maven依赖V
- > E
,这会导致依赖循环。我尝试了不同的scope
值,但无法打破循环。我怎样才能做到这一点?
V
项目是一个非常单一且没有良好结构的代码,我不想分开它。在E
项目中,我可以做任何我想做的事情(事实上它已经包含许多小项目)。
答案 0 :(得分:1)
您需要编写视图代码以使用接口而不是类;无论如何,这是最佳实践。将相关的interface
文件放在模块foo-api
中,然后让foo-domain
和foo-view
依赖于foo-api
。
答案 1 :(得分:1)
一种方法是拆分每个项目的API部分(基本上是从另一个项目调用的接口)。这会给你这样的依赖:
v -> Vapi
E -> Vapi
V -> Eapi
E -> Eapi
并且没有周期。
如果您不想拆分V,这样的方案可能有效:
E -> V
E -> Eapi
V -> Eapi