您好,登錄后才能下訂單哦!
這篇文章主要講解了“maven的版本如何管理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“maven的版本如何管理”吧!
公司內部搭建自己的私有倉庫是所有版本管理的基礎,沒有這個一切都免談。
沒有Nexus私服,我們所需的所有構件都需要通過maven的中央倉庫或者第三方的Maven倉庫下載到本地,這會帶來很多問題:
可能因為網絡問題無法下載(比如內網環境開發)
團隊中的所有人都重復下載造成浪費
團隊中的不同的人開發的模塊不方便共享給其他成員
目前主流的方案都是基于NEXUS搭建的。架構如下:
我不打算寫安裝過程了,網上比較多大家可以自行查找。
安裝完成之后,界面是這樣的(不同的版本界面可能會有差異):
maven-central:這里存放從中央倉庫或者第三方的下載的jar
maven-releases:團隊內部發布版本的jar
maven-snapshots:團隊內部開發版本的jar(后面還會細講)
maven-public:把上面三個倉庫組合在一起對外提供服務(主要是在settings.xml中使用)
有了私鑰庫并不是萬事大吉了。試想下這種場景,甲乙兩個人各自開發一個模塊,甲的模塊需要依賴乙的模塊,乙開發完一個版本后(比如1.1.1)就mvn:deploy到私有庫,甲直接在自己的POM中引用即可。
<dependency>
<groupId>com.yi.develop</groupId>
<artifactId>develop_by_yi</artifactId>
<version>1.1.1</version>
</dependency>
過一段時間,乙發現代碼中有個bug,于是趕緊修復然后把版本變為1.1.2發布到私有庫上了。問題就來了,首先乙如果忘記告訴甲這個事情,甲就會一直引用一個低版本的乙模塊,這可能會對整個應用帶來致命的問題。其次即使乙及時告訴了甲這個消息,甲也要修改自己的pom文件進行更新。后面乙不斷的更新版本,甲就要不斷的更新POM文件。很麻煩吧?!
maven早就幫你想好了解決方案了,它引入了快照版本的概念。乙把自己開發的模塊版本命名為1.1-snapshot,甲這樣引用到自己的工程中:
<dependency>
<groupId>com.yi.develop</groupId>
<artifactId>develop_by_yi</artifactId>
<version>1.1-snapshot</version>
</dependency>
乙每次更新提交到私有庫后,都會將SNAPSHOT改成一個當前時間的時間戳命名的jar,Maven在處理SNAPSHOT依賴時,會根據時間戳下載最新的jar。默認情況下,快照的版本會每天自動更新一次。如果需要實時引用到最新的依賴包,可以使用-U參數強制更新。
mvn clean install -U
Maven版本號采用的是通用的三級規則:
[主版本號].[副版本號].[修復版本號]
主版本號一般來說代表了項目的重大的架構變更
副版本號一般指增加或者減少功能
修復版本號一般代表bug fix
感謝各位的閱讀,以上就是“maven的版本如何管理”的內容了,經過本文的學習后,相信大家對maven的版本如何管理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。