2010-09-01 128 views
1

我們目前在開發中使用SNAPSHOT修飾符,以便項目依賴關係鏈接到其最依賴的最新版本。所以當我們建立一個項目時,我們會得到各種時間快照的所有罐子。無論代碼改變如何。部署Maven jar文件和SNAPSHOT依賴關係

當最終用戶想要下載新版本時,證明這是一個問題。例如,有一個很大的jar文件很少更新。當我們向客戶發佈它時,我們希望將該特定的jar文件稱爲1.4-SNAPSHOT,這意味着當我們更改版本號時,他們只下載新版本建立它有或沒有變化。

達到此目的的最佳方法是什麼?我錯過了什麼嗎?

請謝謝。

回答

1

當最終用戶想要下載新版本時,這被證明是一個問題。

首先,發佈應該確實使用固定版本。因此,如果您正在開發1.4-SNAPSHOT版本,則發佈版本應該是1.4(並且您在VCS中將其標記爲這樣)。然後你在開發分支中將新的開發版本打到1.5-SNAPSHOT。

例如,有一個很大的jar文件很少更新。我們想爲特定的JAR文件被稱爲它的版本號1.4(...)

但即使你按照上面的「標準」的過程中,沒有強迫你以後碰到所有版本一個版本,你可以堅持一個特定的工件的固定版本。這將消除該問題。

+0

好吧,更好的例子也許;有很多罐子有時在發佈之間都沒有改變;我希望客戶只下載它們構建時所假定的新變化。 – myusuf3 2010-09-01 15:43:35

+0

好東西!謝謝! – myusuf3 2010-09-01 17:12:02

+0

有沒有辦法讓這個自動化。目前我們的每個軟件包都附帶了-SNAPSHOT,我怎麼能做到這一點,因此當我們發佈SNAPSHOT時會被忽略。所以開發副本可以繼續?或者是我需要一個新的分支,並從該分支中​​刪除-SNAPSHOT,並在那裏發佈,我們如何克服maven僅在從缺少SNAPSHOT附件後才下載1.4版本的問題。 – myusuf3 2010-09-07 16:45:03

0

在我看來,對用戶來說是一種交付方式,應該通過使用自動增加版本號的maven發佈過程(mvn release)來處理。比你有一個確切的關​​繫到你的版本控制和用戶得到。 SNAPSHOT只能用於開發。

+0

確實maven發佈擺脫了-SNAPSHOT大頭貼?生產什麼類型的罐子? 1.4.jar還是1.4-SNAPSHOT? – myusuf3 2010-09-01 15:44:26

+0

查看Codehaus'版本'插件(http://mojo.codehaus.org/versions-maven-plugin/) - 它允許您做很多類似的事情。 – 2010-09-03 07:54:52