1 问题描述
在Idea导入一个依赖之后,发现依赖包中的某个类出现了大面积报红,移动到红线出会弹出Cannot resolve symbol 'xxx’的异常信息
2 猜测
在看见这个异常之后,猜测可能是依赖包没有完全下载下来,所以百度了一下
2.1 刷新Maven
第一种刷新方法
第二张刷新方法
2.2 删除依赖,重新下载
2.1的方法如果还是不行,那么就把本地仓库中关于这个依赖的所有文件全部删除,然后重新下载
当前的方法对于我的问题依然没有解决
3 解决
3.1 原因
当前下载的依赖包里面有一个usa- common的依赖,这个依赖在当前依赖包里面定义的是1.8.23的版本,但是在之前的依赖包中,也有一个usa- common的依赖,这个依赖包在之前的依赖包中定义的版本是1.7.0,所以下载usa- common依赖时会发生冲突,那么Maven会以依赖路径短的作为当前下载的版本,也就是说,当前依赖的版本下载错了,应该是1.8.3,但是下载了1.7.0
3.2 解决步骤
1、创建一个干净的测试项目,在此项目中下载当前依赖,根据正常项目中报错的位置,找到干净项目中相应的位置,然后点击定位当前类所在依赖中的位置,以及依赖的名称(usa-common)和版本
2、在正常项目的POM文件中,直接引入正确的版本(路径最短)