IDEA中Maven依赖下载失败的解决方法

4,370 阅读3分钟

问题背景:

在日常开发的过程中,拉取别人的项目,或者新建项目在pom文件中添加依赖时,很多小伙伴肯定都遇到过如下图所示的依赖下载失败的情况,我也是遇到过很多次了,在这里把解决的方法给总结一下,希望能帮到各位。

image.png

原因及解决办法:

配置阿里云镜像

出现这种下载失败的状况一般是网络情况造成的,我们国内访问maven中心仓库速度是比较慢的,可能就会造成下载失败的情况,所以我们一般都是会配置阿里云镜像。

在本地 maven 中 conf 文件夹下的 setting.xml 中标签中添加阿里云的镜像

<mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>*</mirrorOf>          
</mirror>

即使我们配了阿里云的镜像,依赖可能依旧会下载失败,那么可以尝试以下的解决方法:

手动删除下载失败的依赖

首先我们可以在本地的 repository 仓库中找到下载失败的依赖,
如图所示,上面这个失败的依赖就在我磁盘的这个路径下:

D:\repository\org\springframework\boot\spring-boot-starter-security\1.6.0 

image.png

我们可以看到这里的文件是以 .lastUpdated 结尾的,那这就是下载失败的jar,当这个下载失败的文件存在的时候,reimport 我们的pom.xml文件,它是不会重新下载这个失败的jar的,所以我们需要手动去删除这些下载失败的文件,然后重新reimport我们的pom.xml文件,才会重新下载。

此时如果还是下载失败,我们可以尝试切换使用阿里云镜像或者不使用阿里云镜像,没准就下载成功了。

如果觉得手动删除这些下载失败的文件比较麻烦,可以使用下面这个脚本来删除:

@echo off
rem create by sunhao(sunhao.java@gmail.com)
rem crazy coder
  
rem 这里写你的仓库路径
set REPOSITORY_PATH=D:\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
    del /s /q %%i
)
rem 搜索完毕
pause

这样操作:

  • 改成你自己的maven仓库路径,
  • 然后粘贴在记事本中把后缀改成 .bat ,
  • 双击运行就能把失败的jar给删除掉. 删除掉之后就可以重新下载了,点击红色箭头处即可重新下载。

image.png

执行修复不完整依赖命令

如果你发现你的依赖不会自动下载了:试试 -U idea:idea 这个命令,可以修复不完整依赖
依下图点击输入执行就行了

image.png

总结

一般如果是网络问题造成的下载失败,那么上面的方法足够解决,还有一种情况是maven中心仓库根本没有这个依赖,比如 Oracle 的就没有,这个时候肯定会下载失败的,这就需要其他方法了,可能需要换个仓库,或者手动将jar部署到自己的仓库,具体步骤可以百度一下。