Maven-HTTP Blocked
问题描述
Could not transfer artifact xxx from/to maven-default-http-blocker (http://0.0.0.0/):
Blocked mirror for repositories: [blocked-repository-id (http://blocked.repository.org, default, releases+snapshots)]
- Maven 在升级到 3.8.1 以后,从安全角度考虑,默认将非 HTTPS 的远端仓库屏蔽掉了。
解决方案
将 Maven 版本降到 3.8.1 以下
让远端仓库支持 HTTPS
为每一个 HTTP 源增加 mirror 配置
1
2
3
4
5
6<mirror>
<id>other-mirror</id>
<name>Other Mirror Repository</name>
<url>https://other-mirror.repo.other-company.com/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>注释
$MAVEN_HOME/conf/settings.xml
默认配置中的相关镜像配置1
2
3
4
5
6
7<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>在
~/.m2/settings.xml
配置中使用 dummy 镜像覆盖默认配置中的镜像配置1
2
3
4
5
6
7<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:dummy:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>