使用maven导入依赖时发生错误,打开maven发现是如下三个plugins报错
在网上搜了许多有说idea中的maven没有配置好,路径中多了空格什么的,都无法解决,后来找到一个方案挺好用的,因此记录一下,方便日后使用,具体方案是将报错无法加载的maven文件以下面的格式写入到<dependencies>标签中:
XML
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.1</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<type>maven-plugin</type>
</dependency>
注意,每个人报错的maven文件不一样,一定要对着自己报错的maven文件进行编辑,具体看下图
做完之后刷新maven,即可解决错误
再往后我又发生了其他错误,在这一起写出来,因为有的小伙伴可能跟我一样使用了springboot父工程,错误如下图
解决方案如下:
添加如下标签即可
<relativePath />
加更:
我后来发现一个简单好用的方法,这里更新一下,maven导入依赖报错的原因,极有可能是你通过maven下载这些依赖的时候网络发生错误,导致你本地的的文件并不完整,所以会报错,但是因为已经下载好了一部分,你这个时候刷新maven并不会重新下载,会一直使用该半成品文件,所以会一直报错。
解决方法为根据idea提示的报错路径在maven本地仓库中找到该文件,删除后刷新maven重新下载就可以了!!但是操作很麻烦,这里推荐一个清理maven垃圾文件的脚本,可以大大节省我们的开发时间。
该脚本大概意思是循环遍历你maven仓库下的文件夹,寻找以.lastUpdated结尾的文件,发现一个删除一个(以.lastUpdated结尾的文件就是没下载好的maven依赖)
cls
@ECHO OFF
SET CLEAR_PATH=D:
SET CLEAR_DIR=D:\Ruan\Maven\apache-maven\maven-repository\
color 0a
TITLE ClearLastUpdated For Windows
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * ClearLastUpdated For Windows * * * *
ECHO. * *
ECHO. * 1 清理*.lastUpdated *
ECHO. * *
ECHO. * 2 查看*.lastUpdated *
ECHO. * *
ECHO. * 3 退 出 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.请输入选择项目的序号:
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" EXIT
PAUSE
:cmd1
ECHO. 开始清理
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do del %%i
ECHO.OK
PAUSE
GOTO MENU
:cmd2
ECHO. 查看*.lastUpdated文件
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do echo %%i
ECHO.OK
PAUSE
GOTO MENU
使用方法为在你的maven最外层文件夹内创建一个文本,将以上代码复制进去,把代码中第三行第四行"="号后面的值改为你配置maven的具体盘符和maven仓库路径。修改完毕保存后退出,将后缀改为bat,即可使用。
点击进去页面如下
按1清理,按3退出即可。
非常好用,自从楼主清理过一遍后,就再没碰见过maven报错这种奇奇怪怪的问题了哈哈哈