报错信息:org.springframework.boot:spring-boot-starter-parent:pom:2.2.7.RELEASE failed to transfer
本人出现的问题是idea升级到2021.3.3版本,maven使用3.8.6版本后,发现有些依赖下不下来,maven私有仓库挂了。查看一下idea 默认maven配置:
发现idea 2021.3.3版本内置的是3.8.1版本的maven。
Maven3.8.1发布一个变更(CVE-2021-26291):
由于使用 HTTP 的自定义存储库可能导致中间人攻击。现在越来越多的存储库使用 HTTPS,但情况并非总是如此。这意味着 Maven Central 包含带有自定义存储库的 POM,这些存储库通过 HTTP 引用 URL。这使得通过此类存储库下载的内容成为攻击目标。开发人员可能没有意识到某些下载使用了不安全的 URL。由于上传到 Maven Central 的 POM 是不可变的,因此需要对 Maven 进行更改。
为了解决这个问题,从3.8.1开始setting.xml会增加一个默认镜像maven-default-http-blocker来阻止从HTTP链接下载不安全的依赖库。
因为我们的Maven私有仓库是内网部署的,并没有去设置HTTPS,所以导致了这个问题。
解决办法:
(1):降级IDEA版本或者不使用内置的Maven;
(2):使用https进行下载(推荐)
进入maven的setting.xml文件,将上述截图代码进行注释,添加如下镜像:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
有些电脑还会出现了一个问题,由于使用了HTTPS,存在着SSL证书验证的问题,因此在IDEA中添加了一行配置:
配置如下:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
该配置用于忽略ssl证书的验证。
下载依赖时,会发现有些RELEASE 版本 不好下载,因为阿里云的镜像仓库移除了这些版本
在 pom 文件中加入:
<!-- 解决 spring-boot jar 包下载问题 -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>