我有一个使用各种 hadoop 库的项目,其中我希望所有来自 “org.apache.hadoop” 组的依赖项都具有相同的版本,即 2.7.6, 甚至传递依赖。
例如hive-hcatalog-core:jar:2.3.2 - 取决于 hadoop-mapreduce-client-core:jar:2.7.2 ,但我想要 2.7.6 版本显式使用 hadoop-mapreduce-client-core。 与 org.apache.hadoop 中的许多库类似。
编辑 - 我通过在我的 pom 中显式添加此类冲突的依赖项来使我的东西工作。但我想知道我们是否可以强制执行这样的事情。
最佳答案
如果你真的想改变传递依赖(见khmarbaise的评论),你可以用<dependencyManagement>
来实现。 .它允许您定义所有依赖项的版本,包括可传递的依赖项。
参见示例
differences between dependencymanagement and dependencies in maven
关于maven - 给定组中所有包含的 Artifact 对相同版本的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50872419/