gpt4 book ai didi

java - Maven 依赖项 : ranges resolving issue

转载 作者:行者123 更新时间:2023-12-02 09:34:29 25 4
gpt4 key购买 nike

我想使用某个依赖项的版本范围。但我真的不明白应该如何为我的案例定义它。
这是查找结果 - maven-metadata-nexus.xml 文件。

<versioning>
<latest>0.1.0-SNAPSHOT</latest>
<versions>
<version>0.0.13-SNAPSHOT</version>
<version>0.0.14-SNAPSHOT</version>
<version>0.0.15-SNAPSHOT</version>
<version>0.0.16-SNAPSHOT</version>
<version>0.0.17-SNAPSHOT</version>
<version>0.1.0-SNAPSHOT</version>
</versions>
<lastUpdated>20190826092951</lastUpdated>
</versioning>

我想导入最新的 0.1.x 依赖项,所以我认为以这种方式编写范围就可以了

<dependency>
<groupId>my.group.id</groupId>
<artifactId>my-artifact</artifactId>
<version>[0.1, 0.2)</version>
</dependency>

但是,maven 说我的 Artifact 没有可用的版本。将范围定义为 [0.1.0-SNAPSHOT, 0.2) 可以解决问题,但我真的不明白为什么我需要如此具体的边界,这是否是一个好的做法。定义此类范围的正确方法是什么?

最佳答案

Maven 对待 SNAPSHOT 版本的方式与“正常”版本不同。

  • “正常”(在存储库中发布)版本通常是不可变的。它无法更新或删除,无论您何时访问它仍然是相同的。
  • SNAPSHOT 版本与此相反。它们可以随时更改(想想正在进行的工作)。

通常快照只能在您的本地存储库中找到。如果您想使用远程存储库中的 SNAPSHOT,则必须明确告诉 Maven 该存储库提供了 SNAPSHOT 版本。

考虑到这一区别,Maven folks have decided那个

Resolution of dependency ranges should not resolve to a snapshot (development version) unless it is included as an explicit boundary. There is no need to compile against development code unless you are explicitly using a new feature, under which the snapshot will become the lower bound of your version specification.

关于java - Maven 依赖项 : ranges resolving issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57659315/

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