前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
1、如果在發布時使用 mvn deploy -P release 的命令,那么會自動使用0.1作為發布版本,那么根據 maven 處理 snapshot 和release 的規則,由于版本號后不帶 -SNAPSHOT 故當成是正式發布版本,會被發布到 release 倉庫;
2、如果發布時使用 mvn deploy 命令,那么就會使用默認的版本號 0.1-SNAPSHOT,此時 maven 會認為是快照版本,會自動發布到快照版本庫。
? ? ? 在 distributionManagement 段中配置的是 snapshot 快照庫和 release 發布庫的地址,我這里是采用 nexus 作為鏡像服務器。
以上轉自:https://blog.csdn.net/aitangyong/article/details/53332091
以下轉自:https://www.cnblogs.com/rwxwsblog/p/6029636.html?
maven中snapshot快照庫和release發布庫的區別
可參考?maven中snapshot快照庫和release發布庫的區別和作用
1. 開發階段經常性的會隨時需要修改并發布,可能一天要發布N次。
maven 的依賴管理是基于版本管理的,對于發布狀態的 artifact,如果版本號相同,即使內部的鏡像服務器上的組件比本地新,maven也不會主動下載。若開發階段都是基于正式發布版本來做依賴管理,那此時,就需要升級組件的版本號,可這操作明顯過于繁復了。
2. 若基于快照版本,問題就迎刃而解了,maven已準備好了這一切:
maven 中的倉庫分為兩種:snapshot 快照倉庫和 release 發布倉庫。
snapshot 快照倉庫用于保存開發過程中的不穩定版本,release正式倉庫則是用來保存穩定的發行版本。
定義一個組件/模塊為快照版本,只需要在 pom 文件中在該模塊的版本號后加上?-SNAPSHOT?
即可(注意這里必須是大寫)。
3. maven 會根據模塊的版本號 (pom文件中的version) 中是否帶有 -SNAPSHOT 來判斷是快照版本還是正式版本。
若是快照版本,在 mvn deploy 時會自動發布到快照版本庫中。使用快照版本的模塊,在不更改版本號的情況下,直接編譯打包時,maven 會自動從鏡像服務器上下載最新的快照版本。
若是正式發布版本,在 mvn deploy 時會自動發布到正式版本庫中,而此類模塊,在不更改版本號的情況下,編譯打包時如果本地已經存在該版本的模塊則不會主動去鏡像服務器上下載 。
故 開發階段,可將公用庫的版本設置為快照版本,被依賴組件則引用快照版本進行開發,在公用庫的快照版本更新后,也無需修改 pom 文件(修改版本號來下載新的版本),直接 mvn 執行相關編譯、打包命令即可重新下載最新的快照庫了。
?