日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Maven快照更新策略

作者:她丶如月中來 更新時間: 2022-07-18 編程語言

文章目錄

  • 前言
  • 一、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

欄目分類
最近更新