如何使 Maven 中的 dependencyManagement 具有传递性

How to make dependencyManagement in Maven transitive

在maven中,dependencyManagement可以用来解决依赖冲突问题

现在我正在开发一个将被许多其他项目使用的公共库项目。我想用dependencyManagement来解决所有的依赖冲突,这样其他项目就不需要处理了。

但是,当我将公共库添加为其他项目的 dependency 时,我发现 dependencyManagement 不起作用。换句话说,我遇到了相同的依赖冲突问题,这些问题已经在公共库的 dependencyManagement 中得到解决。

我知道将 dependencyManagement 复制粘贴到任何地方是一种实现它的方法,但它非常丑陋且难以维护。

还有其他方法可以达到目的吗?

谢谢。

是的,您的 "common lib" 可以将所需版本声明为 <dependency>(不仅仅是在 dependencyManagement 中),还可以使用排除项来排除不需要的版本。这也可以传递。

如果 dependencyManagement 也具有传递性,那就太好了,但这可能会使非常复杂的 Maven 依赖解析过程变得更加复杂。