gpt4 book ai didi

java - 较新版本的依赖项是否会覆盖 Maven 项目中的旧版本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:15 25 4
gpt4 key购买 nike

如果我有一个 Maven 项目,它对 AB 版本 2.0 有显式依赖,并且 AB 有传递依赖版本 1.0。 B 的新版本是否覆盖旧版本?我使用了 maven depencdy:resolve 目标,看起来旧版本的 B 没有解决。如果 A 与较新版本的 B 不兼容怎么办?或者,如果 A 依赖于 B version 2.0 并且我的项目在运行 dependency:resolve goal 后明确依赖于 B version 1.0 我没有看到较新版本的 B 然后。那么如何解决这些依赖关系呢?

当我使用 resolve goal 时,它会显示依赖关系。但是这个依赖项将在哪个阶段使用?编译、测试、运行时?

最佳答案

靠近依赖树根的版本将是首选。如果两个冲突版本在树中的深度相同,则第一个(从树的顶部开始)获胜。

这是一个完全愚蠢的规则吗?是的。它的唯一优点是您始终可以通过将依赖项声明为项目的直接依赖项来强制使用特定版本的依赖项。

因此在您的情况下,将使用 B:2.0,因为它被声明为直接依赖项。如果 A 不能与 B:2.0 一起正常工作,那么,要么在代码中使用 B:1.0,要么选择另一个与 A 功能相同但不会引起冲突的库。

关于java - 较新版本的依赖项是否会覆盖 Maven 项目中的旧版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com