【问题记录】上传jar到私服后,其他模块依赖后,无法使用正确的jar包

问题背景:

将已经开发的包A上传到私服后,其他模块B引用这个包A,部署的时候报错,通过日志发现无法引用这个包A中使用的class。

 解决思路:

1、找到这类是在哪里被引用的。在idea中通过搜索找到引用的位置,并确定被依赖的模块。

2、从环境上把jar取下来,解压后发现lib目录下确实没有这个包。缺少的是下面这个包

3、本地复现。本地出个包,用同样的代码验证一下是否也没有这个缺失的包。出包后,发现确实也没有把这个这个包打进去。

4、从模块的pom入手,排查为什么没有把这个包引入。

     4.1、在idea中查看A模块的依赖.发现A模块是有这个依赖的 

     4.2、在idea中查看B模块的依赖。发现B模块依赖了A模块,但是kafka-clients却没有被依赖,于是我打开B的pom文件,通过依赖进入A的pom文件,惊奇的发下,pom文件里面少了很多东西。只有下图中的这些,于是我知道,没有依赖成功,问题就出在A模块的pom文件

 问题解决:

        为什么会提示【pom was created by sonatype nexus】?我继续查看从环境上取下来的B模块的jar包,之前就发现没有kafka-cliens的jar包,我又打开了环境上A模块的jar包,看一下它的pom文件是否正常。结果发现它的pom文件也是上述内容,这基本上确定就是上传到私服的A模块的jar和pom的问题了

       于是,我在想是什么原因导致的。我又重新上传了一次jar包,发现,上传的时候,GAV是可选的,之前选的是第二个,没有上传pom文件。于是我这次选择了第一个,在私服中使用自己上传的pom文件

 

        重新出包,此问题解决

原文地址:https://www.cnblogs.com/1130136248wlxk/p/15019309.html