Maven依赖爆红的几种解决思路

说明:本文介绍Maven依赖爆红,排查错误的几种思路;

思路一:删除本地仓库.lastupdate文件;

找到本地maven仓库,全局搜索.lastupdate文件,把搜索出来的文件全部删除。.lastupdate后缀名的文件,表示是依赖下载失败的残余文件;

可以在本地仓库的上级目录,创建一个如下的.bat文件,可找到并删除此类文件,后面有需要直接双击执行即可;

powershell 复制代码
set REPOSITORY_PATH=.\maven仓库文件夹名,如mvn_repo
rem 正在搜索...

del /s /q %REPOSITORY_PATH%\*.lastUpdated

rem 搜索完毕
pause

思路二:去掉阿里镜像;

打开setting.xml配置,建议从idea中的这个选项中进入,可以同时验证自己的maven路径没有设置错误;

去掉阿里镜像或者有其他的镜像设置,因为可能下载的依赖在此镜像中不存在,只在中央仓库才有

思路三:私服;

如果以上两种情况都排除了,依赖依旧报错,可以考虑是不是因为有依赖是需要连接私服进行下载的,可查看对应依赖的groupId标签;

如果是私服中的依赖,需要在setting.xml中设置私服ID,账号密码;

思路四:删除爆红依赖;

找到爆红的依赖,在本地仓库中找到这个依赖所在的文件夹,并删除,然后在idea中刷一下maven;

思路五:删除爆红依赖,手写;

在pom文件中,删除爆红的那个依赖标签(dependency标签内的内容),手敲一遍,或者剪切刷一下pom文件,再粘贴一遍;

思路五:查看pom文件是否有红色波浪线;

查看pom文件最上面是否有红色波浪线,看有没有提示错误,这种情况大多数时候是依赖未指定版本,另外,也需要注意pom文件中的标签是有前后顺序的,需要检查以下pom文件标签的顺序,与其他pom文件对比一下。

思路六:没有指定版本;

查看父模块中版本锁定,检查是不是父模块中没有锁定对应依赖的版本,而子模块中爆红的依赖没有指定版本;

思路八:jar是否不存在;

这一点和私服类似,需要查看这个依赖是不是公司独有的,不属于Maven中央仓库的依赖。有些时候,公司会有一些独有的jar包,需要通过Maven命令把该jar包添加到本地Maven仓库中才能正常引用。同样,判断这一点,也通过groupId标签中的域名推测。

如果是这种情况,可以在公司的文件管理平台找到对应的jar包,在jar包所在的位置,打开命令窗口,通过下面命令安装到本地仓库中,再引用就不会报错了。

powershell 复制代码
mvn install:install-file -Dfile=jar路径 -DgroupId=groupID名 -DartifactId=artifactID名 -Dversion=版本名 -Dpackaging=jar

需要注意,较新的Maven版本执行该命令需要有pom文件的支持,所以如果执行失败了,可以试下把该jar包中的pom文件取出来,和jar在同级再执行。

而且,一般来说,提供的jar里面会有关于该jar的maven坐标配置,在install的时候,可以参考这里面的内容,不要随手设置。

另外

如果Maven中对应模块没有plugins dependence两个选项,如下,参考:http://t.csdn.cn/mwGqV

相关推荐
天空之外136几秒前
Docker安装MySQL 8.4 LTS、Docker安装Redis 7.4.x、Docker安装MinIO
java·mysql·docker
fīɡЙtīиɡ ℡16 分钟前
深入学习JAVA并发编程(上)
java·开发语言·学习
XS03010643 分钟前
Spring AI:两种内置 Advisor 快速实现 RAG
java·人工智能·spring
mifengxing1 小时前
LeetCode 238 除自身以外数组的乘积|无除法O(n)时间+O(1)空间双解法
java·算法·leetcode
刘名喜1 小时前
第22篇-数据库迁移-Liquibase
kotlin·springboot
小林敲代码77882 小时前
Spring Boot 3 升级踩坑:aj-captcha 行为验证码底图加载失效
java·spring boot·后端
带刺的坐椅2 小时前
Solon I18n:三种解析器,零样板代码
java·国际化·i18n·solon·多语言
刘名喜2 小时前
第30篇-Spring-Security-7核心概念
后端·kotlin·springboot
掉鱼的猫2 小时前
Solon I18n:三种解析器,零样板代码
java
程序员阿明3 小时前
spring boot3访问resources下的文件,使得在浏览器url中可以直接访问
java·spring boot·后端