pom文件中引入别人的项目之后,Ctrl+鼠标左击aitifactId之后发现被引入的项目所依赖的pom文件一堆报错

引入了别人的项目,想嵌在自己的项目之中,复制了该项目的maven依赖到了自己项目的pom文件:
在这里插入图片描述
一般引入之后,需要点击引入项目的artifactId,查看其依赖的包是否被全部引入,于是Ctrl+鼠标左击aitifactId
在这里插入图片描述
发现一片红,全是报错:
在这里插入图片描述
这里只截取了一部分,这些报错有的groupId和artifactId及版本全报错,有的只是版本。
我所做的尝试:

  1. 去网上搜相关问题,没搜到
  2. 强制改写改项目的pom文件,直接注释掉相应版本号。但是这样只能处理只有版本号报错的依赖,对于gav全报错的情况没辙。
  3. 更换maven配置仓库镜像源,也没管用
  4. 使用idea自带的maven(我先前用的自己下载的),依旧不行,结果没有任何改变
  5. 求教该被我引入的项目的群的群友,也没找到解决办法

解决方法:

心路历程:后来我进入阿里云的maven仓库(我使用的是阿里云的源),搜索报错的依赖,发现里面都有,那么为什么下载不下来呢?仿佛maven对于这个被引入的项目pom文件依赖请求视而不见
第一反应就是在自己的项目的pom文件里加入这些依赖中的一个试了试,发现居然能正常引入!而且再点进被引入项目的pom文件发现该依赖不报错了,显示被正常引入了!

实际步骤:

  1. 直接在自己项目的pom文件里加入被引入项目的pom文件报错的依赖,哪个报错加入哪个。
  2. 若某些依赖还是显示报错,那可能是你使用的有问题,进入使用源的maven仓库,搜索看有没有这个依赖(包括版本号),如果没有就换一个源!
  3. 引入完之后删除对应依赖即可(为了使项目的依赖看起来不那么杂乱)。此时依赖已经被下载到本地的mavenrepository,删除以后被引入项目的pom中的依赖就可以自动在本地repository里直接找。

结果:
在这里插入图片描述
不报红了。

原因:
maven在下载依赖的时候只会下载当前项目的依赖,默认导入的依赖(即被引入的项目)的依赖是完整的,是不需要二次下载的!而有些项目可能并不包含完整的依赖,需要再次远程下载,这样就会出现上述问题。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
出现多个一样版本的jar包通常是由于项目依赖的其他jar包引入了不同版本的同一jar包,你可以使用IDE的依赖分析工具,比如Maven Dependency Plugin或者IDEA自带的Dependency Analyzer来查找冲突的依赖。 如果你发现有重复的依赖,你可以使用Maven Dependency Management或者Gradle Dependency Management来解决冲突。在你的项目pom文件,你可以指定你需要的依赖,以及该依赖的版本号和范围,比如: ```xml <dependency> <groupId>com.example</groupId> <artifactId>example-lib</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> ``` 在这个例子,我们指定了com.example:example-lib:1.0.0这个依赖,它的范围为compile,也就是在编译和运行时都需要这个依赖。如果你有多个依赖需要同一个jar包,你可以在你的pom文件指定一个dependencyManagement元素,来指定这个jar包的版本号和范围: ```xml <dependencyManagement> <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>example-lib</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>example-lib2</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> </dependencies> </dependencyManagement> ``` 在这个例子,我们指定了com.example:example-lib和com.example:example-lib2这两个依赖的版本号和范围都为1.0.0和compile。这样,当你在你的项目引入这两个依赖时,默认会使用指定的版本号和范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值