如何详细解析Maven解决依赖包冲突的策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计763个文字,预计阅读时间需要4分钟。
Maven使用最近获胜策略(nearest wins strategy)原则,解决依赖冲突。此策略意味着在依赖树中寻找最接近的版本,并使用该版本。由于Maven在处理依赖时有时较慢,因此每次需要时都会执行该操作。
Maven根据最近胜利策略(nearest wins strategy)的原则工作,同时解决依赖冲突,这意味着它在依赖树中找到更接近的版本,它将采用该版本并忽略其他版本。实际上Maven有点懒,所以每当它开始寻找依赖时,它就会从根目录开始遍历树,无论它先前找到哪个版本,它都会选择它并从它们返回而不进一步。如果它进一步寻找依赖版本,可能会有机找到一些更新的版本,但它从第一个发现的版本那里返回,并采用旧版本并用它来解决依赖关系。
可以用下面的命令显示依赖树:
mvn dependency:tree
老实说,这不是maven的错,因为它想尽快完成这项工作。最重要的是,maven 不知道你的应用程序期望哪个版本,所以Maven会告诉你,嘿,你有责任让我知道你想要哪个版本,如果你不告诉我,我会以自己的方式工作,即更近更好。
本文共计763个文字,预计阅读时间需要4分钟。
Maven使用最近获胜策略(nearest wins strategy)原则,解决依赖冲突。此策略意味着在依赖树中寻找最接近的版本,并使用该版本。由于Maven在处理依赖时有时较慢,因此每次需要时都会执行该操作。
Maven根据最近胜利策略(nearest wins strategy)的原则工作,同时解决依赖冲突,这意味着它在依赖树中找到更接近的版本,它将采用该版本并忽略其他版本。实际上Maven有点懒,所以每当它开始寻找依赖时,它就会从根目录开始遍历树,无论它先前找到哪个版本,它都会选择它并从它们返回而不进一步。如果它进一步寻找依赖版本,可能会有机找到一些更新的版本,但它从第一个发现的版本那里返回,并采用旧版本并用它来解决依赖关系。
可以用下面的命令显示依赖树:
mvn dependency:tree
老实说,这不是maven的错,因为它想尽快完成这项工作。最重要的是,maven 不知道你的应用程序期望哪个版本,所以Maven会告诉你,嘿,你有责任让我知道你想要哪个版本,如果你不告诉我,我会以自己的方式工作,即更近更好。

