我正在研究一个Java monolith将其分成几个可重用的模块。Maven JAR模块在发布中包含依赖项?
我开始弄清楚依赖关系树可能存在一些问题。
解释我的问题,让我们想象一个简单的项目,其中包括4只依赖:
Proj
ProjA
ProjB
ProjC
ProjD
想象一下,我主要依赖项目之一 - ProjA - 需要主要依赖项目之一 - ProjD-。
ProjA
ProjD
ProjF
防止类路径和其他依赖性问题中重复类的最佳做法是什么?
是否应该在JAR模块中包含依赖关系,并尝试通过设计将它们降至最低?在这种情况下,重写我的子模块以避免发生这种情况。
或者你应该构建没有依赖关系的JAR模块,并且只将它们包含在父“root”项目中?
我不明白你想达到什么。你在建造一个罐子还是一场战争?为什么你想重复类?多模块项目可以具有从一个模块到另一个模块的依赖关系(在pom.xml中) –
每个子模块应该表示与som相关的功能,或者可能表示应用程序中的一个图层。例如,ProjA是持久层,所以ProjB,ProjC和ProjD依赖于ProjA。所以可以有依赖关系,但不是循环依赖关系。一旦模块被设置,maven应该抱怨如果有人试图引入循环依赖。如果有一个明确定义的包结构,那么不应该在同一个包**中重复类名**。不同软件包中重复的类名称会导致代码重复和/或类名不灵。 –
这不是关于循环依赖。只是重复的类依赖关系。设想2个依赖关系,包括作为Hibernate的潜在不同版本的依赖项。你如何解决这个问题? – user3779543