排包遇到的蛋疼事

     之前公司要将DUBBO2.x的版本升级到3.0.10,于是我开始着手升级.因为公司的大佬已经将公司的公用包里面的dubbo升级改造完成了,业务方只需要引用最新版本的公用包就行.

      引入之后,重新reload,启动项目报错.排错之后,发现是jar包冲突,发现项目里面引用的还是dubbo2.x的版本,用maven helper进行依赖分析,发现有一个jar包里引用了dubbo2.x的版本,于是开心的将之排除.重启启动,依然有问题.项目使用的还是dubbo2.x.而且,依赖分析之后,发现有一个顶层的dubbo2.x的版本,我全局搜索了整个项目,根本没有地方有将dubbo引入进来.找了半天,最后终于被我找到了,原来在项目继承的parent中,定义了dubbo,而且就是2.x版本的. 
    
      那么怎么办呢,这个parent pom是全公司在用的,不可能去更改那里面的dubbo版本,于是就在工程里面再显示的定义了一个dubbo版本,覆盖掉了parent pom的dubbo.至此,问题结束.

    本次排查问题,还让我发现了一个问题,原来使用maven hepler分析,得到的结果,是基于最终的结果而来的.什么意思,比如说,我们引入的公司的公用jar包,它里面依赖的就是dubbo3,但是在我没有显示覆盖parent pom的dubbo的时候,分析结果里面显示该jar下面存在一个dubbo2.x.

而当我显示覆盖了之后,这里面显示的就是dubbo3了.

你可能感兴趣的:(排包遇到的蛋疼事)