Maven - 不同版本的传递依赖
Posted
技术标签:
【中文标题】Maven - 不同版本的传递依赖【英文标题】:Maven - transitive dependencies with different versions 【发布时间】:2011-12-22 20:16:42 【问题描述】: 假设我的应用程序需要foo.jar
和bar.jar
foo.jar
需要 c.jar
的 1.0 版
bar.jar
需要 c.jar
的 2.0 版
Maven 如何解决这个冲突?将使用哪个版本的c.jar
?
【问题讨论】:
【参考方案1】:这取决于您在有效 POM 中的声明顺序。如果foo.jar
首先出现,您将获得c.jar
的1.0 版。另一方面,如果首先声明 bar.jar
,它将是 c.jar
的 2.0 版。
相关documentation:
...两个依赖版本在依赖中的深度相同 树,在 Maven 2.0.8 之前,没有定义哪一个会赢,但是 从 Maven 2.0.9 开始,重要的是声明中的顺序: 第一个声明获胜
【讨论】:
这是 Maven 的犯罪设计缺陷以上是关于Maven - 不同版本的传递依赖的主要内容,如果未能解决你的问题,请参考以下文章