2009-06-19 63 views
4

我最近將Maven快照構建功能添加到項目中,該項目配置爲在部署的工件上使用唯一的時間戳版本。但是,這是否是正確的做法存在一些混淆(有問題的快照部署到公共回購之一,而不僅僅是在像公司這樣的實體內部):有人說在嘗試使用快照時會導致問題。因此:鑑於Maven有多少是基於慣例的,並且遵循可感知的最佳實踐,我希望有一些關於選擇哪個選項的指導原則。 (注意:我稍微編輯了標題 - 我特別感興趣的是在公共快照版本中包含通過部署選項的唯一時間戳的優點(或缺乏);而不是如果它們使用時間戳都包括在內,儘管這顯然有些相關的問題)Maven最佳實踐:包括快照發布的時間戳還是不包含?

回答

0

快照的重點是讓別人使用最新版本的代碼。你爲什麼要使用五個版本的快照?

考慮到這一點,神器名稱中的時間戳會給你買什麼?

我一直在使用Maven大約5年了。我從來沒有見過名稱中帶有時間戳的快照jar。

+0

謝謝! 我不知道該選項的初衷,但我的猜測是時間戳可以起到的2個意圖之一: *允許可重複的構建(快照的具體instante) *確保使用最新版本的,獨立的緩存或回購間同步的細節(因爲快照工件名稱更改,它得到(r)同步;沒有它似乎有一些問題) 但我問的原因是:我不知道這些是否被認爲是有效的。 :-) 我剛看到這個選項,並看到一些項目(如Enunciate)爲他們的快照使用時間戳。 – StaxMan 2009-06-19 19:26:07

+0

您可能想要使用快照五個版本,因爲這是您測試的內容。有時你需要比上一個版本更新的東西(例如,由於新功能),但下一個版本不及時發佈。所以你選擇一個快照並進行測試。 – derobert 2009-06-19 19:26:49

1

作爲一項規則,您應該始終針對-SNAPSHOT依賴關係進行構建。但是,如果包含-SNAPSHOT依賴關係,則應該避免發佈您的產品。如果您使用Maven Release Plug-in自動發佈,它將檢查並確保您沒有使用發佈插件或依賴項。

但這並不總是可能的。在我需要基於構建快照時發佈某些內容的情況下,這種構建是在使用明確的時間戳/內部版本號而不是-SNAPSHOT版本命名方案時。

您可以使用Versions Maven Plugin自動執行此操作。它提供了在POM中鎖定和解鎖快照版本的目標。