Maven依赖管理是否会产生不必要的依赖?

时间:2016-06-10 19:48:06

标签: java maven

假设我有3个项目,C1,C2,P。其中P是父项目,C1和C2是子项目w.r.t. pom.xml文件。让我们说有2个依赖关系D1和D2。如果C1依赖于D1而C2依赖于D2,那么将两个依赖项移到父项目上是否有意义?不会添加父级强制C2依赖于D1和D2而不仅仅是D2? (与C1类似)?

2 个答案:

答案 0 :(得分:1)

  

不会添加到父级强制C2依赖于D1和D2而不仅仅是D2? (与C1类似)?

将D2依赖项从C2移动到父级将使C1和C2都依赖于D2。

通常,将依赖项从子级移动到父级会使父级的所有子级依赖于移动的依赖项。

  

将两个依赖项移到父项目上是否有意义?

这取决于您尝试实现的目标。

例如,如果每个模块都使用某个实用程序库,那么将依赖项移动到父项是有意义的。

但是如果依赖项仅由子模块的一个使用,那么使所有模块依赖于此依赖关系并没有多大意义。

E.g。如果像Spring MVC这样的框架仅由Web应用程序(控制器)模块使用,那么使持久层模块依赖于Spring MVC是没有意义的。

答案 1 :(得分:1)

作为一种最佳实践,我们应该在父项目中声明依赖项或API,这些项目在所有子项目中使用并且是版本锁定的(依赖项的版本在极少数情况下更改或根本不更改)。所以在你的情况下。

将两个依赖项移到父项目上是否有意义?

  • 如果C1依赖于D1而C2取决于D2,则建议在子项目中声明它们。

不会添加父级强制C2依赖于D1和D2而不仅仅是D2?

  • 是的,会的。