检查/解决 maven 引入依赖报错/爆红的问题

目录

1.  检查 file-settings 里面如下位置的三项是否配置正确

2. 检查 maven 的配置文件

3. 其他

4. 残余文件

5. 检查引入依赖的名字是否正确

1.  检查 file-settings 里面如下位置的三项是否配置正确

        ①  maven 的路径

        ② maven 的配置文件

        ③ meven 的本地仓库

2. 检查 maven 的配置文件

到本地找到 setting.xml 文件 (如笔者本人的 setting.xml 在 D:\Maven\apache-maven-3.8.5\conf 目录下

可以将 setting.xml 文件拖入 idea 项目内, 利用 idea 的功能进行检查(看看有没有错误的嵌套, 或者漏写什么标签)

注意 : setting 里面的国内镜像, 如果没有写对, maven 也是可以跑起来的!!!

        但是会比配置完了国内镜像慢很多, 而且有些依赖会报 "Could not transfer artifact ..." 的错误

(maven 配置国内的阿里云镜像就不在文中赘述了, 网上有很多优秀的帖子讲得很清楚了, 可以自行搜索)

3. 其他

        ① 引完依赖记得刷新 (点如下两个按钮都可以起到刷新的效果, 第一个按钮仅在堆 pom.xml 文件的内容有所更改的时候出现)

         ② 可以先尝试删除原有引入的依赖, 再让 maven 导入

        maven 本地仓库应当是自己创建的文件夹, 通常命名为 repository, 然后 根据 groupId 一层层进入具体文件夹, 再根据 artifactId 找到对应依赖的文件, 最后找到 jar 包 (痛哭,,笔者当初就是网上搜不到自己又笨, 一直找不到本地对应的依赖藏在哪里...

        如图, 假如要找的是如下标蓝的依赖

        从图中可见, groupId 是 org.springframework.cloud, artifactId 是 spring-cloud-starter-openfeign  (记住 这两个id, 后面有用)

那么, 我们首先进入 repository 目录

 然后根据 groupId : org.springframework.cloud, 进入对应的文件夹 repository\org\springframework\cloud

再根据 artifactId 找到对应的文件

最后点进文件夹, 确定相应的依赖是否引入, 进行操作(比如删除, 删除完再让 maven 重新导包)

 如下图, 确认相应的依赖是否引入

删除完依赖以后, 在 idea 中, 点击 maven 的如下按钮进行重新导包

4. 残余文件

        如果删除了本地仓库的jar包,重新下载,还是不行的话。

        去百度找一个  删除maven  .lastupdate的脚本
        运行之后
        重新刷新maven

______

        在桌面建立一个 cleanupUpdated.bat 的脚本文件,内容为

rem 这里写你的仓库路径  
set REPOSITORY_PATH=D:\Maven\apache-maven-3.8.5\repository
rem 正在搜索...  
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (  
    del /s /q %%i  
)  
rem 搜索完毕  
pause 

记得多执行几遍,因为如果网络不好的话,一遍可能删不干净所有的文件

idea中也有删除 lasupdate文件的功能

       

5. 检查引入依赖的名字是否正确

        比如笔者就曾引入 log4j, 但 artifactId 写错了,没加 core,一直失败

 6. 版本冲突

报错 : Caused by: java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method <init>()V not found

 遇到此报错,请查询您当前 maven 版本发行时间,以及 idea 版本。

笔者 maven 3.8.5 在 2022-3-5 发行,但 idea 是 2020 的,故报错

参考帖子 : 【maven】java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator_尤成军军军的博客-CSDN博客



 

maven 在笔者入门时候对笔者造成了巨大的伤害... 花了好多小时在各种奇奇怪怪的原因导致的红色上...

但是在不知不觉中, 至少在依赖爆红方面, 笔者已经能非常迅速地定位错误并解决了

希望这篇文章对遇到错误的你有所帮助 (> . <)

(有遇到新的奇奇怪怪的问题会持续更新...)

        

MavenJava项目开发中常用的依赖管理工具。在使用Maven进行依赖管理时,有时候我们可能会遇到一些问题,其中之一就是导入依赖爆红问题。 这种情况一般是由于导入的依赖不兼容当前项目的环境而导致的。具体原因可能有以下几种: 1. 依赖版本不匹配:如果导入的依赖版本与当前项目的其他依赖存在冲突或者不匹配,就会导致编译出错。 2. 缺失依赖:如果导入的依赖所需要的其他依赖没有被正确引入,就会导致编译出错。 3. 依赖缺少依赖:有些依赖需要一些其他依赖来支持,如果缺少了这些支持依赖,就会导致编译出错。 针对这些情况,我们可以采取如下几种解决方案: 1. 升级或降级依赖版本:通过查找依赖版本之间的兼容性信息,我们可以选择升级或降级依赖版本,以解决版本不匹配的问题。 2. 引入缺失的依赖:在Maven的POM文件中添加缺失的依赖。 3. 引入缺少的支持依赖:在Maven的POM文件中添加缺少的支持依赖。 4. 排查其他可能影响的因素:如果以上方法都无法解决问题,可能需要进一步排查其他可能影响的因素,例如环境配置、配置文件等。 总之,在使用Maven进行依赖管理时,我们需要注意依赖版本的兼容性,确保所有依赖都正确引入并得到满足。只有做好这些准备工作,才能顺利地进行项目开发和部署。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值