maven中snapshot快照庫和release釋出庫的區別和作用
在使用maven過程中,我們在開發階段經常性的會有很多公共庫處於不穩定狀態,隨時需要修改併發布,可能一天就要釋出一次,遇到bug時,甚至一天要釋出N次。我們知道,maven的依賴管理是基於版本管理的,對於釋出狀態的artifact,如果版本號相同,即使我們內部的映象伺服器上的元件比本地新,maven也不會主動下載的。如果我們在開發階段都是基於正式釋出版本來做依賴管理,那麼遇到這個問題,就需要升級元件的版本號,可這樣就明顯不符合要求和實際情況了。但是,如果是基於快照版本,那麼問題就自熱而然的解決了,而maven已經為我們準備好了這一切。
maven中的倉庫分為兩種,snapshot快照倉庫和release釋出倉庫。snapshot快照倉庫用於儲存開發過程中的不穩定版本,release正式倉庫則是用來儲存穩定的發行版本。定義一個元件/模組為快照版本,只需要在pom檔案中在該模組的版本號後加上-SNAPSHOT即可(注意這裡必須是大寫),如下:
<groupId>cc.mzone</groupId>
<artifactId>m1</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>
maven2會根據模組的版本號(pom檔案中的version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。如果是快照版本,那麼在mvn deploy時會自動釋出到快照版本庫中,而使用快照版本的模組,在不更改版本號的情況下,直接編譯打包時,maven會自動從映象伺服器上下載最新的快照版本。如果是正式釋出版本,那麼在mvn deploy時會自動釋出到正式版本庫中,而使用正式版本的模組,在不更改版本號的情況下,編譯打包時如果本地已經存在該版本的模組則不會主動去映象伺服器上下載。
所以,我們在開發階段,可以將公用庫的版本設定為快照版本,而被依賴元件則引用快照版本進行開發,在公用庫的快照版本更新後,我們也不需要修改pom檔案提示版本號來下載新的版本,直接mvn執行相關編譯、打包命令即可重新下載最新的快照庫了,從而也方便了我們進行開發。
轉自 http://www.mzone.cc/article/277.html
相關文章
- 資料庫系列:RR和RC下,快照讀的區別資料庫
- snapshot standby快照備庫角色
- iOS中 Debug 和 Release 的區別和使用iOS
- [轉帖]資料庫的快照隔離級別(Snapshot Isolation)資料庫
- VC中debug和release版本的區別
- snapshot 和 view,lock 和 latch 的區別View
- Debug和Release的區別
- Maven Release釋出指南---Git版MavenGit
- javascript中break和continue的區別和作用JavaScript
- 資料庫中modify和change的區別資料庫
- 理解Maven中的SNAPSHOT版本和正式版本Maven
- c#中Debug和Release的區別實驗C#
- 資料庫映象和資料庫快照資料庫
- 動態庫和靜態庫的區別
- 10 管理物理和快照備庫
- Windows:Debug和Release build區別WindowsUI
- 利用github Actions釋出npm和releaseGithubNPM
- Maven中央倉庫釋出歷程Maven
- 虛擬機器中的快照和備份之間的區別虛擬機
- 在pycharm安裝MySQLdb庫和pymysql庫的區別PyCharmMySql
- idea maven中lifecycle 和 plugins的區別IdeaMavenPlugin
- maven中profile元素的作用意義和用法Maven
- 釋出jar包到maven中央倉庫JARMaven
- 資料庫中varchar和Nvarchar區別與聯絡資料庫
- 資料庫中Schema和Database有什麼區別資料庫Database
- 庫克和賈伯斯在釋出會的區別
- oracle例項和資料庫的區別Oracle資料庫
- 動態連結庫和靜態連結庫的區別
- 堆和棧的解釋和區別
- PHP7 ?? 與 ?: 的作用和區別PHP
- 【轉載】Maven中-DskipTests和-Dmaven.test.skip=true的區別Maven
- 深入瞭解gradle和maven的區別GradleMaven
- 釋出構件到 Maven 中央倉庫遇到的坑Maven
- dg和ogg的區別--oracle資料庫Oracle資料庫
- 函式庫呼叫和系統呼叫的區別函式
- 資料庫和例項instance的區別資料庫
- VC下Debug和Release區別——網路文摘
- 區塊鏈代表的資料庫和傳統資料庫有何區別區塊鏈資料庫