網站首頁 編程語言 正文
文章目錄
- 前言
- 一、SNAPSHOT版本與RELEASE版本
- 二、快照的更新策略
- 三、配置Maven快照更新策略
前言
Maven 是 Apache的一個開源項目,Maven 的本質是一個項目管理工具,將項目開發和管理過程抽象成一個項目對象模型(POM)。開發人員只需做一些簡單的配置,就可以批量完成項目的構建、報告和文檔的生成工作。在國內開發中使用的構建工具多為Maven,當然還有Gradle、Bazel 等構建工具。
一、SNAPSHOT版本與RELEASE版本
我們在開發軟件階段時會在POM文件中導入很多依賴公共庫,這些公共庫可能隨時需要修改并發布,可能一天就要發布一次甚至一天要發布N次。
RELEASE: RELEASE一般是一個穩定可靠的版本,如果我們對此版本內容進行修改發布到遠程倉庫,如果我們本地已經存在此版本的依賴,那么即使遠程服務器上的倉庫發生變化,在本地與服務器上依賴版本相同的情況下,maven也不會再去內部服務器上拉取最新的依賴。也就是說無法實時獲取此版本依賴的更新內容。一般的解決方法就是升級一個RELEASE版本,但正如上面所說,對于開發階段我們一天可能需要修改多次類庫,不可能每次都升級一個版本。
SNAPSHOT:快照(SNAPSHOT)版本就可以很好的解決上面RELEASE的問題,對于每次服務器上更新了相應的SNAPSHOT版本,本地都會去重新拉取一遍依賴,確保本地的版本內容與服務器上的一致。maven會根據模塊的版本號(version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。
二、快照的更新策略
Maven的快照更新策略有四種,分別是:
always: 每次構建都會檢查去遠程倉庫中檢查該依賴jar包是否有更新。
daily :每天檢查一次 (每天只最多拉取一次),這也是Maven的默認策略。
interval:指定時間間隔檢查,類似定時任務,單位是分鐘。
never :從不去遠程倉庫檢查,該策略就和RELEASE版本一樣。
如果沒有在settings.xml中配置更新策略的話,那么默認的就是daily策略。因此很多人會發現第一次更新一個SNAPSHOT版本后,擁有這個jar包的項目在第一次刷新后可以獲取這個jar包的最新內容,但是在第二次更新后,卻無法再次獲取最新ja包內容。這里的罪魁禍首就是Maven默認更新策略為一天一次。如果一天之內多次更新,那么Maven也只會第一次才去遠程倉庫拉取最新的依賴。
三、配置Maven快照更新策略
如果想每次構建都讓Maven去拉取最新的依賴,可以在控制臺使用mvn clean install-U 命令,這樣會強制更新本地倉庫。另一種方式就是修改Maven的settings.xml文件,在repository的snapshots下增加一個updatePolicy屬性,配置默認更新策略。
原文鏈接:https://blog.csdn.net/qq_43600166/article/details/124557001
相關推薦
- 2022-08-25 C++淺析STL?迭代器?容器的使用_C 語言
- 2022-05-23 C#多線程之線程同步_C#教程
- 2022-07-12 k8s conntrack 表項超時導致tcp長連接中斷
- 2022-05-18 centos?自動運行python腳本和配置?Python?定時任務_python
- 2022-11-09 grep正則表達式匹配中括號的方法實例_正則表達式
- 2023-01-26 Python+Sklearn實現異常檢測_python
- 2024-04-08 Linux 服務器連接方式
- 2022-10-18 shell腳本批量將文件復制到指定的文件夾下_linux shell
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支