我有一个带有子模块的项目。
Proj
ProjA
ProjB
ProjC
ProjA 依赖于 ProjY,而 ProjY 又依赖于 ProjX。
ProjA-->ProjY-->ProjX
我在 ProjA 中指定 ProjY 依赖项。我应该在 ProjA 中单独包含 ProjX 依赖项吗?(传递依赖?)
如果 ProjB 依赖 ProjX 怎么办?我应该单独包含它吗?或者我可以将它包含在 Porj(主要)级别中?
我有一个带有子模块的项目。
Proj
ProjA
ProjB
ProjC
ProjA 依赖于 ProjY,而 ProjY 又依赖于 ProjX。
ProjA-->ProjY-->ProjX
我在 ProjA 中指定 ProjY 依赖项。我应该在 ProjA 中单独包含 ProjX 依赖项吗?(传递依赖?)
如果 ProjB 依赖 ProjX 怎么办?我应该单独包含它吗?或者我可以将它包含在 Porj(主要)级别中?
我在 ProjA 中指定 ProjY 依赖项。我应该在 ProjA 中单独包含 ProjX 依赖项吗?(传递依赖?)
你不应该在 ProjA 中包含对 ProjX 的依赖,因为 Maven 会处理这个问题。如果没有,则某些配置是错误的。处理传递依赖项是 Maven 的主要功能之一,它可以为您节省一些管理依赖项的麻烦(尽管有时可能会很烦人,当您在项目中获得意想不到的依赖项时)。
如果 ProjB 依赖 ProjX 怎么办?我应该单独包含它吗?或者我可以将它包含在 Porj(主要)级别中?
是的,您应该在 ProjB 中单独包含依赖项。为了确保您在所有模块中获得相同版本的 ProjX,您可以在父 pom.xml 中的 -element 中定义它。然后,您可以在模块 pom.xml 中定义依赖项时省略版本。