gpt4 book ai didi

java - 为什么 Maven 中的动态版本范围没有最初预期的那么有用?

转载 作者:行者123 更新时间:2023-12-02 09:49:05 28 4
gpt4 key购买 nike

我一直在 Maven/POM 中使用显式版本的 Java 依赖项。

然后有一段时间我切换到Python,在那里我了解到依赖版本范围(例如> = 2.3.0)非常流行,并且似乎限制了依赖冲突的问题:两个范围重叠的可能性比这要高两个精确版本是相等的。我想知道为什么 Maven/POM 世界中不存在这样的解决方案?

然后我收到了有关我的 GitHub 项目依赖项中存在漏洞的通知以及将其升级到的建议:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>[2.9.9,)</version>
</dependency>

太棒了,我想,Maven 中有依赖版本范围!我不需要经常更新我的依赖项。但后来,我读到 they are de facto depracated ,因为:

  • they are not as useful as originally intended, and also that they are unlikely to get improvements without a significant re-think.

  • 还有那个

    Resolution of dependency ranges should not resolve to a snapshot (development version) unless it is included as an explicit boundary

    但似乎有 bug 那里(于 2007 年提出并于 2018 年重新开放)。

为什么它们没有最初预期的那么有用?

除了 Maven 之外,还有其他 Java 框架可以处理依赖版本范围吗?

最佳答案

其他选项是 Gradle 。从其文档中“如果依赖项被声明为动态版本(如 1.+、[1.0,)、[1.0, 2.0)),Gradle 会将其解析为存储库中最高可用的具体版本(如 1.2)”

关于java - 为什么 Maven 中的动态版本范围没有最初预期的那么有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446857/

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