對於任何中等複雜的軟件項目,您都可以快速結束複雜的依賴關係鏈。Maven:針對帶SNAPSHOT的版本範圍進行開發,但針對固定版本進行發佈
考慮以下依賴關係樹:
A --> B --> C
`--------^
A和B取決於C.由於每個項目的發展,固定依賴性防止持續集成。 (例如,如果C更新爲A所需的修復,則B的依賴也將需要修改...)使用semantic版本控制,我們可以保持模塊與版本範圍一致,而無需不斷調整poms。
[實際上這個圖更復雜。我們不應該把所有東西都組合到一個多模塊項目中(或者將它們組合起來),因爲這會挫敗模塊化。我們要建立模塊化軟件與持續集成]
但是部署的版本應該是一成不變的。他們所依賴的版本應該是固定的,所以今天發佈的版本(+它的依賴)與明年使用的版本相同。
目標:
- 開發商對快照發布工作(採摘快照依賴在本地或從哈德森)
- 發佈是針對最新的(兼容)由發佈依賴的版本(不包括快照)
- 版本永遠是不可變的。
- 是什麼在Maven來做到這一點的最好辦法:根據A = 1.0.0將始終B和C
問題帶來了什麼?有沒有描述這個用例的鏈接/文檔?
- maven release插件可以解析版本範圍並將它們烘焙到版本中嗎?
鑑於:
- 通過默認的Maven(3.0.3)的版本範圍拿起快照依賴。
- 快照並釋放可被部署到單獨的存儲庫
是否有這樣做與Maven持續集成的更好的辦法?
並且在版本中是否鎖定版本範圍?如果A 1.0取決於B [1.0,2.0)。這個依賴範圍在版本A中是否存在? –