记一次jar引入失败的奇葩问题

背景

eclipse中有A,B两个项目。现在B需要引入一个jar X,X在A中可以从远处库拉取,在B中不行,只拉下来pom文件等其他文件。A、B项目在同一个工作空间。

同步环境,唯一化变量

1、同一个工作空间,maven 版本一致3.5.4
2、同步maven的setting文件以及项目pom文件中对远程仓库的配置。

具体分析问题

经过上面的同步环境,以及其他以前经历,分析得到:A、B项目都可以访问仓库,x jar 的引用声明也没有问题。

分析1:jar包冲突会引起jar包引入失败?(A,B项目jar包依赖肯定不同,会不会x jar 会引起B的jar冲突,而A不会)

验证:新建一个空项目,使用A的pom文件(文件中有远程仓库的配置信息),只引入X jar 包其他内容清空。maven update 之后,依旧只有pom文件

分析2:能否看到maven的日志,告诉我具体是什么原因导致拉取x jar包 失败?

验证:初步百度,没有结果。突然想到,虽然maven update 的时候看不到信息,但是 maven install 却可以,其中有下载依赖的信息描述。

通过install后查看信息,发现install 过程中说导入 x jar 的父项目 找不到(我只是需要x jar包,为什么需要连带它的父项目?)。分析x 的pom 文件,发现声明的父项目版本号是2.0,但是远程仓库没有2.0版本的父项目。

通过打包发布2.0的父项目,成功为B引入了x jar

思考

那么为什么A项目同样存在这个问题,它却可以正常拉取呢?就好比甲乙两个人去同一个书店(远程仓库地址一样)买书,书名作者都一致(jar包的artifact、group),同一个营业员招待(maven版本一致)。结果甲买到了书,乙却买不到?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值