关于Error reading file xxxx/pom.xml的多种可能原因及解决

1.报错解释

这是我在使用自己从apache下载的maven的时候碰到的bug,网上绝大部分解释都说是setting.xml文件出问题了,但我很明确我不是这个问题。报错字面意思来看就是pom文件出了问题,idea没法解析了,可以理解为idae在解析pom文件的时候遇到了不认识的东西。

2.可能原因

2.1setting.xml文件语法异常

2.2本地仓库里的内容异常

当你的报错出现如下情况时,那大概率是本地仓库里的文件内容出了问题。

2.3pom文件语法错误

3.解决办法

对于原因一,如果熟悉settings.xml文件,可以自己打开去排查错误(大部分情况是我们自行更改settings文件中的mirror和localrepository的时候失误导致语法不通过),如果不熟悉,可以复制idae自带的maven中的settings文件过去。

对于原因二,可以将当前配置的仓库里的内容清空,或者重新指派一个空的或完备的仓库,毕竟maven想要的东西如果本地仓库没有他是会去下载的,注意需要联网和下载时间哈,重新指派仓库只需要打开当前项目的settings并Override其中maven设置中Local Repository的路径。

对于原因三,语法报错会有编译提示,找到报错点然后好好检查语法就行。

4.原因分析

4.1对于setting文件问题

自行下载一个maven之后,我们一般会对他的conf目录下的settings.xml文件中的镜像做配置,毕竟一般情况下国内网站的访问速度大于国外,但是修改文件的过程中,可能会错误的删掉或者多加了一些什么东西,导致文件语法不对,进而导致报错。(大部分情况是我们自行更改settings文件中的mirror和localrepository的时候失误导致语法不通过)

4.2对于本地仓库问题

4.2.1查看自己当前配置的本地仓库位置

首先,我们查看当前maven项目使用的是哪个本地仓库,打开当前项目的设置(settings),再手动搜索maven便可以看到maven的设置了,众所周知,咱maven文件的插件,依赖等都是从本地仓库里拿到的,如果本地仓库没有则优先去中央仓库,其次去我们在setting.xml文件中配置的远程仓库中去下载并同步到本地仓库中去(所以这里本地仓库的作用类似于缓存?)

4.2.2结合报错信息和当前配置的本地仓库里的文件

比如我的报错中有无法解析的插件

这时候我再到配置的本地仓库的位置中去查看对应文件(idea中的文件名对应仓库中的文件路径),然后就会发现有很意思的东西。

有些是插件对应的版本缺失

有些是存在对应版本但无法解析

这边推测一下:有可能是idae和maven版本的问题,导致idae自带的仓库里的内容不是maven想要的,但是又因为文件夹名字能匹配上,占据了位置,导致无法重新下载(占着茅坑不拉屎)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值