简介:Maven在升级到3.8.1后,出于安全考虑,默认屏蔽了非https的远端仓库。本文将为你提供解决该问题的方案。
在使用Maven进行项目构建时,有时会遇到依赖解析报错,提示“Blocked mirror for repositories”。这个问题通常是由于Maven升级到3.8.1及更高版本后,出于安全考虑,默认屏蔽了非https的远端仓库。下面将为你提供解决该问题的方案。
首先,我们需要了解为什么会出现这个错误。从Maven 3.8.1开始,出于安全考虑,Maven默认只允许通过https协议访问远程仓库,而非https的仓库将被默认屏蔽。这意味着,如果你的项目中的依赖项是从非https仓库获取的,那么在升级Maven后,这些依赖项将无法解析,从而导致报错。
解决方案有以下几种:
其中,
<settings>...<mirrors><mirror><id>example-mirror</id><mirrorOf>*</mirrorOf><url>http://example.com/repo</url></mirror></mirrors>...</settings>
url字段需要替换为你的仓库地址。这个配置告诉Maven使用自定义的mirror来解析所有依赖项,从而绕过默认的仓库限制。但是请注意,这可能会降低安全性,因为数据传输仍然是明文的HTTP协议。