2012-12-05 127 views
2

以下是我目前對Maven如何處理依賴關係的理解。Maven快照「生命週期」

當一個依賴關係正在積極工作Maven將「-SNAPSHOT」附加到該版本的末尾。例如)1.1.1-SNAPSHOT。這些快照上傳到專門負責快照的遠程存儲庫。同一個遠程存儲庫有一個發佈版本的軟件包部分。現在,當項目更新依賴關係時,Maven會將最新版本的包拉入本地存儲庫。僅根據快照上的時間戳更新快照。如果Maven提供了一個發佈版本(例如:1.1.0),它將永遠不會使用當前版本查找另一個包。

現在我的問題是:

  • 什麼是我理解的缺陷?我錯過了一個概念性的作品嗎?
  • 當包從SNAPSHOT移動到發行版本時,pom.xml如何更新以反映發佈版本的包?這是一個手動過程嗎?
  • 最後,如果一個包被釋放,我們將使用上面的例子,1.1.1被釋放。是創建了1.1.2-SNAPSHOT還是創建了1.2.0-SNAPSHOT,並且這是將在poms中更新的版本?

回答

1

快照目前處於開發版本並且可能不穩定。

我們是老式的公司仍然使用svn:

  1. 發展在POM文件中的主幹和版本將會是快照(我們必須依賴於有固定的版本了一些開源庫,我們更新他們只要新版本發生,我們有信心切換)
  2. 一旦我們要釋放我們正在分支樹幹和改變版本在POM到相應的固定的(有些公司可以用後綴-rc標記它們)
  3. 發行版(使用-rc的公司將在pom中將版本更改爲固定版本)

請看看發佈maven插件跳過手動版本更改。

我希望這能回答你的一些問題。

關於版本控制答案 - 取決於。請詳細閱讀這裏看:

http://en.wikipedia.org/wiki/Software_versioning

Best Practice: Software Versioning

+0

什麼第三方的依賴?會不會有這些的SNAPSHOT,或者這些將永遠是一個發佈的版本?其次,所以任何不發達的東西都會有SNAPSHOTS,只有當一個分支被做時,SNAPSHOTS纔會成爲發佈版本。作爲一個總是在主分支上工作的開發人員,我通常不會在我的pom中看到自己的.jars發佈版本? – heater

+0

通常你使用發佈的(穩定的)第三方依賴項。但是,如果您在與某些新服務集成的情況下與諾基亞合作,則可能是因爲您擁有快照依賴關係。但通常情況下,快照依賴性不會從公司的內部網中走出來。 –