?本文來說下Maven的SNAPSHOT版本有什么作用
問題
在使用maven進行依賴管理時,有的版本號后面會帶有"-SNAPSHOT",有什么作用呢?
<dependency><groupId>com.smallbeef</groupId><artifactId>dubbo-interface</artifactId><version>1.0-SNAPSHOT</version>
</dependency><!--引入dubbo的依賴-->
<dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version>
</dependency><!-- 引入zookeeper的依賴 -->
<dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version>
</dependency>
解決
帶有"-SNAPSHOT"表示使用的依賴為快照版本,不帶"-SNAPSHOT"為正式版本。
正式版本"abc-1.0"
構建的時候會先在本地倉庫中查找是否已經有了這個依賴庫,若是沒有的話才會去遠程倉庫中去拉取。
假設項目中現在依賴"abc-1.0",在第一次構建的時候會把該庫從遠程倉庫中下載到本地倉庫緩存,之后再次構建都不會去訪問遠程倉庫了。如果遠程倉庫中代碼進行了修改,但版本號依舊叫"abc-1.0",那么此依賴沒法獲得最新更新。只有版本號更新后(如"abc-1.1")才能拉取到最新代碼。
快照版本"abc-1.0-SNAPSHOT"
每次構建時,會優先去遠程倉庫中查看是否有最新的"abc-1.0-SNAPSHOT.jar",若是有則下載下來使用。即便本地倉庫中已經有了"abc-1.0-SNAPSHOT.jar",它也會嘗試去遠程倉庫中查看同名的jar是不是最新的。在配置Maven的Repository的時候中有個配置項,能夠配置對于SNAPSHOT版本向遠程倉庫中查找的頻率。頻率共有四種,分別是always、daily、interval、never。
頻率 | 詳情 |
---|---|
always | 每次都去遠程倉庫查看是否有更新 |
daily | 每天只在第一次的時候查看是否有更新,當天的其它時候則不會查看 |
interval | 容許設置一個分鐘為單位的間隔時間,在這個間隔時間內只會去遠程倉庫中查找一次 |
never | 不會去遠程倉庫中查找(和正式版本相同) |
本文小結
本文介紹了Maven快照(SNAPSHOT)相關的知識與內容。
---------------------
作者:wh柒八九
來源:CSDN
原文:https://blog.csdn.net/qq_31960623/article/details/123504862
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件