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

學無先后,達者為師

網站首頁 編程語言 正文

Maven快照更新策略

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

文章目錄

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

欄目分類
最近更新