【问题标题】:Why does maven X.X.X-SNAPSHOT not satisfy a version range starting with X.X.X?为什么 maven X.X.X-SNAPSHOT 不满足以 X.X.X 开头的版本范围?
【发布时间】:2023-02-03 08:54:58
【问题描述】:

我使用使用版本范围的 BOM 的父 pom 处理大量 Maven 构建的服务。一般来说,当可用版本不是快照时,这工作得很好。

我现在正在编写一些使用相同机制的新代码,但唯一可用的版本是 SNAPSHOT 版本。当我运行 Maven 构建时,它说“没有可用的版本”。

我的版本范围是“[2.9.0, 2.9.100]”。可用版本是 2.9.0-SNAPSHOT,但失败了。

在相关版本中,使用版本范围“[2.7.0, 2.7.100)”,当可用版本为 2.7.0 或 2.7.1 时,这工作正常。

从我读过的内容来看,我相信这意味着“2.9.0-SNAPSHOT”“超过”2.9.0,所以这应该有效。为了以防万一,我尝试了将范围更改为“[2.8.9, 2.9.100)”的实验,但它仍然说没有可用的版本。

我知道“不推荐版本范围”的建议。一般来说,这对我们有用。快照不适用于版本范围吗?

我目前正在使用 Maven v3.8.2。

更新:

请注意,如果我将版本范围更改为“[2.9.0-SNAPSHOT, 2.9.100-SNAPSHOT)”,它会接受“2.9.0-SNAPSHOT”版本。我不确定从长远来看这是否有帮助。

【问题讨论】:

    标签: maven


    【解决方案1】:

    快照旨在用于开发期间的工件版本控制,不被视为发布版本。因此,它们不包含在仅使用发行版本的版本范围内(例如“[2.9.0, 2.9.100]”)。

    您可以尝试使用范围“[2.9.0-SNAPSHOT, 2.9.100]”来明确包含快照版本,但请记住快照可能会频繁且不可预测地更改。通常建议仅将快照用于内部开发目的,而不是用于生产系统。

    或者,您可以尝试使用特定版本而不是版本范围,以确保您在构建中使用的工件版本一致。

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 2013-10-04
      相关资源
      最近更新 更多