2016-07-14 121 views
0

假设我在dependencyManagement部分定义了一些工件的版本。确切地说,dependencyManagement优先于依赖性定义中的版本吗?

该版本定义覆盖传递性依赖关系中的所有版本定义是否正确?

还是它只解决版本冲突?

因此,如果我在我的dependencyManagement中将foo放入版本2.0.0,并且某些传递依赖项在版本1.0.0中具有foo,那么我是否总是获得2.0.0?

回答

0

这就是Maven 2的工作原理。一般来说这就是基本规则:无论你的项目指定什么都优先于你的依赖指定。

然而,根据Maven 3.x Compatibility Notes,这个过程是在Maven的3改为现在使用Aether并且应该是更聪明,甚至可能采取语义版本考虑到即使不使用version ranges。在我看来,文件分散而不是很清楚。不过,我认为主要区别在于两个依赖项之间的冲突是如何解决的,而不是在项目和依赖项之间。所以第一条规则仍然适用。

相关问题