关键词: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>中的第一个,其他的配置不动


witt
577 声望462 粉丝

一位爱好计算机运维,喜欢折腾软件,不爱写代码的准Java开发程序员。