【问题标题】:how to manage same jar of different versions in maven dependencies?如何在 Maven 依赖项中管理不同版本的相同 jar?
【发布时间】:2016-06-30 11:36:12
【问题描述】:

需要在同一个pom.xml中添加spring web jar 3.1.3和3.2.2的Dependencies。 maven是否支持不同版本的同一个jar?

【问题讨论】:

标签: spring maven


【解决方案1】:

除了this

Maven 以不同的方式做到这一点。如果有两个不同版本的依赖声明,则较高版本优先。

EDIT1: 该语句用于同一个 pom 中的直接依赖声明。强制使用所需的版本是这里的策略。

Maven uses dependency mediation to resolve the version conflicts. 

AFAIK,因为高版本总是向后兼容,所以首选是使用高版本。

除非添加特定版本有非常充分的理由,否则一切都将用于设计模块及其层次结构。

This 让您全面了解如何使用模块管理依赖项。 This 描述了冲突解决方案。

EDIT2:

对于传递依赖,是的,最近定义是遵循的策略。如example

【讨论】:

  • 这不正确或不准确。如果有两个不同版本的依赖声明,最接近的优先。当最接近相等时,更高版本优先。
  • @michaldo,感谢您的补充,是的,它是传递依赖项在定义的依赖项之间进行选择。根据 OP 规范,我将其标记为定义具有较低和较高版本的相同依赖项。但是,编辑了答案以包含传递依赖项的示例。但是在同一个 pom 中,有两个依赖项作为显式 <dependency> 标记,最高优先级是我相信的,
  • 好。过去认为Maven总是选择更高版本,因为它看起来很自然。所以我认为重要的是要指出 Maven 使用不太自然的最近获胜策略
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
相关资源
最近更新 更多