2016-09-07 40 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。 –