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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

理解Maven中的SNAPSHOT版本和正式版本

發(fā)布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解Maven中的SNAPSHOT版本和正式版本 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? Maven中建立的依賴管理方式基本已成為Java語言依賴管理的事實標(biāo)準(zhǔn),Maven的替代者Gradle也基本沿用了Maven的依賴管理機制。在Maven依賴管理中,唯一標(biāo)識一個依賴項是由該依賴項的三個屬性構(gòu)成的,分別是groupId、artifactId以及version。這三個屬性可以唯一確定一個組件(Jar包或者War包)。

? ? 其實在Nexus倉庫中,一個倉庫一般分為public(Release)倉和SNAPSHOT倉,前者存放正式版本,后者存放快照版本。如果在項目配置文件中(無論是build.gradle還是pom.xml)指定的版本號帶有’-SNAPSHOT’后綴,比如版本號為’Junit-4.10-SNAPSHOT’,那么打出的包就是一個快照版本。

? ? 快照版本和正式版本的主要區(qū)別在于,本地獲取這些依賴的機制有所不同。假設(shè)你依賴一個庫的正式版本,構(gòu)建的時候構(gòu)建工具會先在本次倉庫中查找是否已經(jīng)有了這個依賴庫,如果沒有的話才會去遠程倉庫中去拉取。所以假設(shè)你發(fā)布了Junit-4.10.jar到了遠程倉庫,有一個項目依賴了這個庫,它第一次構(gòu)建的時候會把該庫從遠程倉庫中下載到本地倉庫緩存,以后再次構(gòu)建都不會去訪問遠程倉庫了。所以如果你修改了代碼,向遠程倉庫中發(fā)布了新的軟件包,但仍然叫Junit-4.10.jar,那么依賴這個庫的項目就無法得到最新更新。你只有在重新發(fā)布的時候升級版本,比如叫做Junit-4.11.jar,然后通知依賴該庫的項目組也修改依賴版本為Junit-4.11,這樣才能使用到你最新添加的功能。

? ? ?這種方式在團隊內(nèi)部開發(fā)的時候會變的特別蛋痛。假設(shè)有兩個小組負責(zé)維護兩個組件,example-service和example-ui,其中example-ui項目依賴于example-service。而這兩個項目每天都會構(gòu)建多次,如果每次構(gòu)建你都要升級example-service的版本,那么你會瘋掉。這個時候SNAPSHOT版本就派上用場了。每天日常構(gòu)建時你可以構(gòu)建example-service的快照版本,比如example-service-1.0-SNAPSHOT.jar,而example-ui依賴該快照版本。每次example-ui構(gòu)建時,會優(yōu)先去遠程倉庫中查看是否有最新的example-service-1.0-SNAPSHOT.jar,如果有則下載下來使用。即使本地倉庫中已經(jīng)有了example-service-1.0-SNAPSHOT.jar,它也會嘗試去遠程倉庫中查看同名的jar是否是最新的。有的人可能會問,這樣不就不能充分利用本地倉庫的緩存機制了嗎?別著急,Maven比我們想象中的要聰明。在配置Maven的Repository的時候中有個配置項,可以配置對于SNAPSHOT版本向遠程倉庫中查找的頻率。頻率共有四種,分別是always、daily、interval、never。當(dāng)本地倉庫中存在需要的依賴項目時,always是每次都去遠程倉庫查看是否有更新,daily是只在第一次的時候查看是否有更新,當(dāng)天的其它時候則不會查看;interval允許設(shè)置一個分鐘為單位的間隔時間,在這個間隔時間內(nèi)只會去遠程倉庫中查找一次,never是不會去遠程倉庫中查找(這種就和正式版本的行為一樣了)。

Maven版本的配置方式為:

<repository><id>myRepository</id><url>...</url><snapshots><enabled>true</enabled><updatePolicy>XXX</updatePolicy></snapshots> </repository>

其中updatePolicy就是那4種類型之一。如果配置間隔時間更新,可以寫作?interval:XX?(XX是間隔分鐘數(shù))。daily配置是默認值。

而在Gradle,可以設(shè)置本地緩存的更新策略。

configurations.all {// check for updates every buildresolutionStrategy.cacheChangingModulesFor 0,'seconds'}

當(dāng)然也可以按照分鐘或者小時來設(shè)置.

configurations.all {resolutionStrategy.cacheChangingModulesFor 10, ‘minutes' } configurations.all {resolutionStrategy.cacheChangingModulesFor 4, ‘hours' }

? ? ?所以一般在開發(fā)模式下,我們可以頻繁的發(fā)布SNAPSHOT版本,以便讓其它項目能實時的使用到最新的功能做聯(lián)調(diào);當(dāng)版本趨于穩(wěn)定時,再發(fā)布一個正式版本,供正式使用。當(dāng)然在做正式發(fā)布時,也要確保當(dāng)前項目的依賴項中不包含對任何SNAPSHOT版本的依賴,保證正式版本的穩(wěn)定性。

總結(jié)

以上是生活随笔為你收集整理的理解Maven中的SNAPSHOT版本和正式版本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 麻豆成人久久精品一区二区三区 | 男人的天堂在线视频 | 99久久久国产精品 | 乌克兰黄色片 | 一本色道久久加勒比精品 | 无人在线观看高清视频 单曲 | 久久国产加勒比精品无码 | 少女视频的播放方法 | 狠狠网| 在线观看一二区 | 亚洲国产日韩欧美一区二区三区 | 91干干| 日本一区二区色 | 国产成人精品无码免费看81 | 亚洲图片一区二区三区 | 久久人人爽人人爽人人片亚洲 | 久久成年人视频 | 男人爆操女人 | 天堂av在线中文 | 在线观看亚洲色图 | 国产九九九九九 | 美女被啪羞羞粉色视频 | 白丝校花扒腿让我c | 亚洲综合色网站 | av网站观看 | 久久第一页 | a在线免费观看 | 久久免费视频观看 | 久久99热人妻偷产国产 | 欧美精品二区三区四区免费看视频 | 欧美巨乳美女 | 欧美性久久久 | 91麻豆视频网站 | 午夜啪啪网站 | 亚洲区小说区图片区qvod | www.日本在线观看 | 五月天亚洲综合 | 中文字幕欧美在线 | 免费激情 | 9i看片成人免费看片 | 免费国产在线观看 | 六月婷婷激情网 | 老熟妇毛茸茸 | 台湾综合色 | 亚洲精品一区在线 | 亚洲精品www. | 日韩一区二区高清 | 黄色永久免费网站 | 一区二区日韩欧美 | 久久4| xxxxwwww国产| 午夜视频国产 | 一区二区三区四区在线观看视频 | 女教师痴汉调教hd中字 | 91蝌蚪九色 | 厨房性猛交hd | 日日夜夜超碰 | 亚洲国产aⅴ精品一区二区的游戏 | 制服诱惑一区二区 | 亚洲一区二区三区麻豆 | 都市激情中文字幕 | 黄色a在线 | 久久久久亚洲AV成人无在 | 天天天天射 | 欧美成人激情在线 | 国产毛片a | xxxxwwww在线观看 | 综合九九 | 制服诱惑一区二区三区 | 亚洲成人mv | 精品福利视频一区二区 | 国产欧美日本在线 | 国产视频一区二区三 | 精品人妻一区二区三区潮喷在线 | 海角社区在线 | 蜜臀99久久精品久久久久久软件 | y11111少妇| 精品久久影视 | 天堂网站 | 欧美色图五月天 | 黄色av免费在线观看 | 欧美视频在线播放 | 免费污网站在线观看 | 超碰在线网址 | 国产中文字幕在线免费观看 | 我要色综合网 | 国产一区二区三区四区三区四 | 一区二区亚洲精品 | 日日夜夜精品视频免费 | 日韩av在线高清 | 亚洲国产毛片aaaaa无费看 | 国产精品无码白浆高潮 | 成人综合站 | 曰本女人与公拘交酡 | 能在线观看的av网站 | 黄色中文字幕 | 色网站在线播放 | 色就是色欧美色图 | 欧美成人区 |