網(wǎng)站首頁 編程語言 正文
文章目錄
- 前言
- 一、SNAPSHOT版本與RELEASE版本
- 二、快照的更新策略
- 三、配置Maven快照更新策略
前言
Maven 是 Apache的一個開源項目,Maven 的本質(zhì)是一個項目管理工具,將項目開發(fā)和管理過程抽象成一個項目對象模型(POM)。開發(fā)人員只需做一些簡單的配置,就可以批量完成項目的構(gòu)建、報告和文檔的生成工作。在國內(nèi)開發(fā)中使用的構(gòu)建工具多為Maven,當(dāng)然還有Gradle、Bazel 等構(gòu)建工具。
一、SNAPSHOT版本與RELEASE版本
我們在開發(fā)軟件階段時會在POM文件中導(dǎo)入很多依賴公共庫,這些公共庫可能隨時需要修改并發(fā)布,可能一天就要發(fā)布一次甚至一天要發(fā)布N次。
RELEASE: RELEASE一般是一個穩(wěn)定可靠的版本,如果我們對此版本內(nèi)容進(jìn)行修改發(fā)布到遠(yuǎn)程倉庫,如果我們本地已經(jīng)存在此版本的依賴,那么即使遠(yuǎn)程服務(wù)器上的倉庫發(fā)生變化,在本地與服務(wù)器上依賴版本相同的情況下,maven也不會再去內(nèi)部服務(wù)器上拉取最新的依賴。也就是說無法實時獲取此版本依賴的更新內(nèi)容。一般的解決方法就是升級一個RELEASE版本,但正如上面所說,對于開發(fā)階段我們一天可能需要修改多次類庫,不可能每次都升級一個版本。
SNAPSHOT:快照(SNAPSHOT)版本就可以很好的解決上面RELEASE的問題,對于每次服務(wù)器上更新了相應(yīng)的SNAPSHOT版本,本地都會去重新拉取一遍依賴,確保本地的版本內(nèi)容與服務(wù)器上的一致。maven會根據(jù)模塊的版本號(version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。
二、快照的更新策略
Maven的快照更新策略有四種,分別是:
always: 每次構(gòu)建都會檢查去遠(yuǎn)程倉庫中檢查該依賴jar包是否有更新。
daily :每天檢查一次 (每天只最多拉取一次),這也是Maven的默認(rèn)策略。
interval:指定時間間隔檢查,類似定時任務(wù),單位是分鐘。
never :從不去遠(yuǎn)程倉庫檢查,該策略就和RELEASE版本一樣。
如果沒有在settings.xml中配置更新策略的話,那么默認(rèn)的就是daily策略。因此很多人會發(fā)現(xiàn)第一次更新一個SNAPSHOT版本后,擁有這個jar包的項目在第一次刷新后可以獲取這個jar包的最新內(nèi)容,但是在第二次更新后,卻無法再次獲取最新ja包內(nèi)容。這里的罪魁禍?zhǔn)拙褪荕aven默認(rèn)更新策略為一天一次。如果一天之內(nèi)多次更新,那么Maven也只會第一次才去遠(yuǎn)程倉庫拉取最新的依賴。
三、配置Maven快照更新策略
如果想每次構(gòu)建都讓Maven去拉取最新的依賴,可以在控制臺使用mvn clean install-U 命令,這樣會強(qiáng)制更新本地倉庫。另一種方式就是修改Maven的settings.xml文件,在repository的snapshots下增加一個updatePolicy屬性,配置默認(rèn)更新策略。
原文鏈接:https://blog.csdn.net/qq_43600166/article/details/124557001
相關(guān)推薦
- 2023-07-18 獲取Linux和windows的MAC地址
- 2022-04-19 Install MongoDB Community Edition on Red Hat or Ce
- 2024-03-14 SpringBoot中RestTemplate 發(fā)送http請求
- 2022-07-18 python中數(shù)組array和列表list的基本用法及區(qū)別解析_python
- 2022-09-15 python?Pandas庫read_excel()參數(shù)實例詳解_python
- 2022-06-22 配置Git并從GitHub上克隆項目_其它綜合
- 2022-06-24 Python利用隨機(jī)函數(shù)生成變化圖形詳解_python
- 2023-03-20 C#如何遠(yuǎn)程讀取服務(wù)器上的文本內(nèi)容_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支