处理Maven transitive dep版本的最佳方法是什么?

时间:2014-12-22 16:34:40

标签: maven dependencies

我不太确定在Maven项目中处理以下情况的最佳方法......

我有两个直接依赖关系A和B.两者都依赖于C的不同版本。依赖关系A与两个版本的C兼容,但是依赖关系B只与它声明的C版本兼容。我想简单地使用B声明的任何C版本。

我意识到我可以在依赖关系A中排除C的依赖关系,但是如果我删除了依赖关系B,或者如果C被删除作为B的依赖关系... A将不再起作用。

我也意识到我可以在我的依赖关系管理部分中声明B的当前版本的C,但是如果B改变它的C版本,我就不会无缝地获得更改。

处理此类情况的规定方法是什么?

1 个答案:

答案 0 :(得分:1)

推荐的最佳方式,尽管是maven文档稍微间接地使用dependency management功能。引用doc

  

依赖关系管理部分的第二个非常重要的用途   是控制传递中使用的工件的版本   的依赖关系。

我可以理解,每次C使用T的新版本时,您都必须更新目标项目B的版本,例如C,但你还必须从T's POV - 目标项目T来看这个,应该知道并能够控制它所具有的传递依赖的所有版本。