Maven - 具有不同版本的传递依赖项

Fri*_*izz 15 version maven transitive-dependency

  • 让我们假设我的应用程序需要foo.jarbar.jar
  • foo.jar 需要版本1.0的 c.jar
  • bar.jar 需要版本2.0的 c.jar

Maven如何解决这场冲突?c.jar将使用哪个版本?

Sri*_*ran 18

这取决于您的有效POM中的声明顺序.如果foo.jar首先显示,你将获得版本1.0 c.jar.另一方面,如果bar.jar首先声明它将是版本2.0 c.jar.

相关文件:

...两个依赖版本在依赖关系树中处于相同的深度,直到Maven 2.0.8没有定义哪一个会赢,但是自Maven 2.0.9起,它就是声明中的顺序:第一个声明获胜

  • 这是 Maven 的一个犯罪设计缺陷 (3认同)