關鍵詞: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
檔案,有以下內容
<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>
中的第一個,其他的配置不動