IDEA Maven依赖下载总是失败的几种解决方法
作者:福建沙县小吃
为啥我的IDEA Maven依赖下载总是失败??我们本地使用 IDEA 运行 maven 项目的时候,有时候运气不好,就会遇到某些 maven 依赖无法正常找到、导入。这就会导致 IDEA 构建项目的时候爆出一堆醒目的红色 Error。正好最近新拉取一个项目源码,本地运行项目,又碰到这种情况。按照以前的解决经验,捣鼓了一下,发现没办法解决。于是研究了一下午,终于解决这个问题🤔。吐槽一下,刚开始一度以为是这个项目有问题,找了一个同事,发现他的电脑是却可以正常运行这个项目。那今天这篇的文章,总结一下 IDEA 运行 maven 项目找不到相关依赖报错的问题原因以及解决办法,希望能有帮助。
1. 网络问题,无法下载 maven 依赖
一般来说,如果没有配置,Maven会在默认的中央仓库下载各项依赖,而我们访问这个地址,网络速度不仅慢,网络质量还差。这就导致了maven 依赖下载速度过慢,有时候下载还可能会失败。maven 依赖下载失败,这就会导致 IDEA 找不到相关依赖。那这个问题解决办法也比较简单,我们可以通过设置镜像(mirrors)地址解决。打开我们本地 maven 配置文件,默认地址如下: ${user.home}/.m2/settings.xml
,然后找到 mirrors
节点,在这下面添加以下配置:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
2. lastUpdated 文件导致依赖无法正常导入
当你更新镜像地址之后,有可能还会碰到 maven 依赖无法导入,那恭喜你碰到第二个问题了。maven 依赖下载的时候,如果碰到网络较差,依赖下载失败,maven 本地将会生成 lastUpdated 为后缀的文件。
那正常的 maven 依赖如下
只要 lastUpdated 文件存在,maven 依赖将不会重新下载,所以做简单的方法就是,删除 lastUpdated 文件,重新刷新下载即可。这里提供一键删除 lastUpdated 文件脚本(macos)
# 这里写你的仓库路径 REPOSITORY_PATH=~/.m2/repository echo 正在搜索... find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr echo 搜索完
3 - maven 依赖冲突,引用错误
前两个问题主要跟本地网络有比较大的关系,那这个问题,主要是因为 maven 特性导致。那 maven 有一个依赖传递的特性,如果 A 依赖 B,而 B 依赖 C,那么 C 这个依赖就会通过 B 间接传递给 A。那这个问题解决办法,也比较简单,有冲突,我们就直接解决冲突就可以了。我们可以在 IDEA 中安装一个 Maven Helper 插件,然后打开 pom 文件,点击 Dependency Analyzer 选项,在这里面选中 Conflicts 按钮,就可以看到当前所有冲突的依赖包。选中其中一个依赖包,就可以在右侧看到所有冲突依赖包的版本。选中其中一个版本,右键选中 Exclude 即可。上面的办法我们通过排除其他间接依赖从而解决问题。那下面还有一种解决办法,将间接依赖转化为直接依赖。我们可以把间接依赖直接写在项目 pom 文件里,这样 maven 将会直接使用这个依赖,其他间接依赖将会失效。
- 最后
重启大法,重启 IDEA,重启电脑。
到此这篇关于IDEA Maven依赖下载总是失败的几种解决方法的文章就介绍到这了,更多相关IDEA Maven依赖下载失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!