關於maven中版本控制問題
阿新 • • 發佈:2019-02-19
maven中的倉庫分為兩種,snapshot快照倉庫和release釋出倉庫。snapshot快照倉庫用於儲存開發過程中的不穩定版本,release正式倉庫則是用來儲存穩定的發行版本。定義一個元件/模組為快照版本,只需要在pom檔案中在該模組的版本號後加上-SNAPSHOT即可(注意這裡必須是大寫)
maven2會根據模組的版本號(pom檔案中的version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。
如果是快照版本,那麼在mvn deploy時會自動釋出到快照版本庫中,會覆蓋老的快照版本,而在使用快照版本的模組,在不更改版本號的情況下,
直接編譯打包時,maven會自動從映象伺服器上下載最新的快照版本。如果是正式釋出版本,那麼在mvn
deploy時會自動釋出到正式版本庫中,
而使用正式版本的模組,在不更改版本號的情況下,編譯打包時如果本地已經存在該版本的模組則不會主動去映象伺服器上下載。
使用SNAPSHOT具有透明性,變更會直接生效,但這樣會被依賴者帶來不穩定性和不確定性,所以不應該被濫用
補充:
對於服務,biz是沒有版本這一說的,執行的永遠都是最新的版本,但是對於API是有版本的。
API提供介面,biz提供服務,一般來說,版本往上升的話,API只增不減,而biz也隨之增加實現,如果新版本刪除了某個介面及實現,而呼叫者使用old version的依賴,嘗試呼叫這個介面,就會調不到產生錯誤。