日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven中的snapshot来源与注意事项

發(fā)布時間:2025/3/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven中的snapshot来源与注意事项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

maven的依賴管理是基于版本管理的,在maven2之后,把版本管理細(xì)化snapshot 快照倉庫和release發(fā)布倉庫。release版本,對于發(fā)布狀態(tài)的artifact(就是被依賴的jar包),如果版本號相同,即使我們內(nèi)部的鏡像服務(wù)器上的組件比本地新,maven也不會主動下載的。這里也為snapshot 的出現(xiàn)打下了伏筆。

??????? 快照版本,很多人不是特別理解為什么要有這個事物的出現(xiàn),它的出現(xiàn)對于編程有什么幫助嗎?沒有snapshot出現(xiàn)之前,我們開發(fā)過程依賴別人開發(fā)某個包,通常maven會集中管理這些依賴包,它會要求別人打包成jar放到鏡像服務(wù)器上,自己本地的pom.xml文件設(shè)置了依賴后,maven編譯時,會自動從鏡像服務(wù)器上下載依賴。但如果鏡像服務(wù)器上有相同版本的依賴時,maven就不會下載,這是上段文字的白話版本,那么舉個例子說明一下。

?????? 比如,你的工程要依賴的core版本是 1.0.0 版本,結(jié)果這個版本還正處于對方(叫小菜吧)的開發(fā)過程中,他利用maven命令mvn install打包成jar,并部署到服務(wù)器上,根據(jù)pom設(shè)定的版本,你順利下載了依賴包。但小菜后續(xù)開發(fā)過程,發(fā)現(xiàn)了一個致命bug,那么他再操作一次,那么,即使服務(wù)器的更新是你需要的,你只能干著急,只能跟小菜吼一聲,“你的版本,老子無法更新依賴包,再給我發(fā)一個新的版本上去。”小菜一聽,好吧,那我把版本升到 1.0.1 版本,你通過update dependencies 下載了這個新版本的jar包。這樣的情況,會循環(huán)地出現(xiàn),那么你和小菜有點惱火了,maven就是老鼠鉆到風(fēng)箱里,兩頭受氣,maven想能不能開發(fā)一個功能,使雙方默認(rèn)可以上傳并打包下載到最新的開發(fā)版本,而不用修改版本號,否則開發(fā)完成之后,服務(wù)器上是一堆的release版本。有了這個思路,maven增加了劃時代的功能,snapshot ,這樣依賴版本為 1.0.0-SNAPSHOT (注意必須為全大寫),當(dāng)服務(wù)器上有更新時,會自動下載到本地,省去了不少、和小菜的溝通時間,也減小了不少由于版本問題帶來的編譯錯誤。

????? 任何東西的使用,需要遵循其規(guī)則,snapshot雖然好用,如果使用不當(dāng),反而易造成困惑問題。首先,開發(fā)一個依賴jar包時,注意snapshot版本號的不同,需要一個統(tǒng)一的地方記錄各自的版本,在開發(fā)周期很長的情況下,版本號release的順序并非按版本號順序發(fā)布,重要的是,大家的開發(fā)版本號不能重復(fù)。如果你也在開發(fā)這個core.jar,你依賴于本地,而服務(wù)器上別人有也相同版本號的core.jar定期放在服務(wù)器上,這樣,本地的jar經(jīng)常會被來自服務(wù)器版本覆蓋而導(dǎo)致錯誤。

??????? 總結(jié)一下,我們在開發(fā)階段,可以將公用庫的版本設(shè)置為快照版本,而被依賴組件則引用快照版本進(jìn)行開發(fā),在公用庫的快照版本更新后,我們也不需要修改pom版本號來下載新的版本,直接mvn執(zhí)行相關(guān)編譯、打包命令即可重新下載最新的快照庫了,從而保證了開發(fā)進(jìn)度和質(zhì)量。

總結(jié)

以上是生活随笔為你收集整理的maven中的snapshot来源与注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。