2016-09-07 36 views
3

假设我有我的Maven仓库了解Maven的版本范围

1.0-SNAPSHOT, 1.0, 1.1, 1.2-SNAPSHOT 

版本的假象。现在,当我指定这件神器版本范围

[1.0-SNAPSHOT,) 

(并假设没有其他版本的要求),将Maven的它解析为1.1或1.2快照?

我已经读过版本范围决心发布版本,如果两个边界都是发布版本,但如果其中一个边界是SNAPSHOT,那么它们还没有理解确切的行为。背景:由于一些遗留原因,我们有依赖于SNAPSHOT构件的发布工件。这些SNAPSHOT工件在发布版本可用时会被删除(这打破了Maven版本)。从逻辑上讲,我的目标是行为:以SNAPSHOT版本为准,但只要有可用版本,请立即将其替换为发行版。

+0

真正释放依赖于SNAPSHOT的工件吗?你失去了重复性。此外,我建议阻止使用版本范围。 – khmarbaise

+0

@khmarbaise让我解释一下:我们刚刚开始从Ant到Maven的过渡。在Ant中,人们在发布版本中使用了SNAPSHOT和RC依赖项。这些工件必须与生成的POM一起导入到我们的Nexus中。因此,我们需要支持依赖于SNAPSHOT的版本。当然,当发布版本可用时,这些SNAPSHOT应该被删除。处理这种情况的最佳想法是版本范围。 –

回答

2

我只是测试,行家它解析为1.2快照

因此,重要的似乎是:

  1. 查找最新的版本(1.2)
  2. 以释放(如果可用)。其他SNAPSHOT
+0

感谢您的测试:这意味着Maven只需要最大的版本,不管它是否为SNAPSHOT。 –