引入了别人的项目,想嵌在自己的项目之中,复制了该项目的maven依赖到了自己项目的pom文件:
一般引入之后,需要点击引入项目的artifactId,查看其依赖的包是否被全部引入,于是Ctrl+鼠标左击aitifactId
发现一片红,全是报错:
这里只截取了一部分,这些报错有的groupId和artifactId及版本全报错,有的只是版本。
我所做的尝试:
- 去网上搜相关问题,没搜到
- 强制改写改项目的pom文件,直接注释掉相应版本号。但是这样只能处理只有版本号报错的依赖,对于gav全报错的情况没辙。
- 更换maven配置仓库镜像源,也没管用
- 使用idea自带的maven(我先前用的自己下载的),依旧不行,结果没有任何改变
- 求教该被我引入的项目的群的群友,也没找到解决办法
解决方法:
心路历程:后来我进入阿里云的maven仓库(我使用的是阿里云的源),搜索报错的依赖,发现里面都有,那么为什么下载不下来呢?仿佛maven对于这个被引入的项目的pom文件的依赖请求视而不见!
第一反应就是在自己的项目的pom文件里加入这些依赖中的一个试了试,发现居然能正常引入!而且再点进被引入项目的pom文件发现该依赖不报错了,显示被正常引入了!
实际步骤:
- 直接在自己项目的pom文件里加入被引入项目的pom文件的报错的依赖,哪个报错加入哪个。
- 若某些依赖还是显示报错,那可能是你使用的源有问题,进入使用源的maven仓库,搜索看有没有这个依赖(包括版本号),如果没有就换一个源!
- 引入完之后删除对应依赖即可(为了使项目的依赖看起来不那么杂乱)。此时依赖已经被下载到本地的mavenrepository,删除以后被引入项目的pom中的依赖就可以自动在本地repository里直接找。
结果:
不报红了。
原因:
maven在下载依赖的时候只会下载当前项目的依赖,默认导入的依赖(即被引入的项目)的依赖是完整的,是不需要二次下载的!而有些项目可能并不包含完整的依赖,需要再次远程下载,这样就会出现上述问题。