目录
1. 检查 file-settings 里面如下位置的三项是否配置正确
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 在笔者入门时候对笔者造成了巨大的伤害... 花了好多小时在各种奇奇怪怪的原因导致的红色上...
但是在不知不觉中, 至少在依赖爆红方面, 笔者已经能非常迅速地定位错误并解决了
希望这篇文章对遇到错误的你有所帮助 (> . <)
(有遇到新的奇奇怪怪的问题会持续更新...)