我有一个带有这些依赖项的多模块maven项目: module-gui - >模块的业务
每个模块都有自己的特定域对象:
gui module =>查看域对象
business module =>业务领域对象。
对于某些业务逻辑,我必须将视图对象从gui模块映射到业务模块中的业务域对象到业务模块!
它给我带来了麻烦,因为它造成了一个普通的循环依赖
module-gui依赖于模块业务,所以我无法在module-business中添加对module-guu的依赖,以便能够访问gui域对象。
我可以将所有域对象移动到一个公共模块中以打破循环依赖,但我认为最好将对象放在正确的模块中(将对象视图到视图模块和业务对象到业务模块中)但也许我完全错了:)
你知道这种问题是否有良好的做法?
答案 0 :(得分:0)
如果要在许多项目中执行相同的操作compile
,则应使用Maven多模块。
如果要在Maven多模块项目中编译所有应用程序层,则必须在模块一致性和构建自动化之间进行权衡。
所以我认为,在给定的体系结构中,您的解决方案是一个很好的折衷方案:声明编译依赖关系,并避免使用循环关联,允许您利用Maven reactor对编译模块进行排序,使您无需对它们进行排序。
另一方面,您可以通过使用控制器层将视图域对象转换为业务域对象(视图 - >业务)来修改体系结构解耦视图和业务层,并将业务域对象转换为视图域对象(查看< - 业务)。