優雅關閉maven-default-http-blocker?

witt發表於2024-11-29

關鍵詞:maven 、 maven-default-http-blocker 、 mvn block

當maven升級到3.8.1之後,會遇到一個報錯Could not validate integrity of download from,其中包含maven-default-http-blocker關鍵詞,核心原因是maven 3.8.1之後認為HTTP不安全,禁用了HTTP的maven倉庫訪問,開啟maven倉庫的conf/settings.xml檔案,有以下內容

image.png

<mirror>
  <id>maven-default-http-blocker</id>
  <mirrorOf>external:http:*</mirrorOf>
  <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
  <url>http://0.0.0.0/</url>
  <blocked>true</blocked>
</mirror>

嘗試在搜尋引擎搜尋解決方案,沒想到各個部落格站點都是一群水貨

👎水文一

修改maven安裝路徑下的conf/settings.xml檔案,將上面的內容刪除

我問一個問題:用Mac和Linux的同學隨著作業系統升級了maven, 升級一次改一次嗎?

👎水文二

讓升級HTTPS
降低maven版本

如果能升級到HTTPS,當初一開始就不會搭建HTTP的私服?有什麼大病吧?降maven版本,就這廢話還能專門寫文章?

😊水文三

為每個源新增<blocked>false</blocked>標籤

<mirror>
  <id>xxx-repo</id>
  <mirrorOf>external:http:*</mirrorOf>
  <url>http://hostname:8081/repository/maven-public/</url>
  <blocked>false</blocked>
</mirror>

這個方案還可以,但是一般稍微好點的公司都是阿里、網易、華為、清華、騰訊、中央倉庫按照優先順序排序使用的,還會有一些apache、Spring等企業內部的快照源,原則上不動已經寫好的配置

⭐👍🐮完美方案

參考自 Stack Overflow社群

在當前使用者家目錄下個性化settings.xml,變更~/.m2/settings.xml

<mirror>
    <id>maven-default-http-blocker</id>
    <mirrorOf>dummy</mirrorOf>
    <name>Dummy mirror to override default blocking mirror that blocks http</name>
    <url>http://0.0.0.0/</url>
 </mirror>

將上述內容放在<mirrors></mirrors>中的第一個,其他的配置不動

相關文章