记一次maven包依赖排查总结
问题
**项目启动时候少报或者依赖不了包**
排查思路
先看 idea 的 project structs 中的包依赖,是否依赖进来,如果报红线则表示 idea 中的 maven 并没有依赖包
1.1 这个情况下第一时间检查 idea 中的 maven 配置是否正常.
maven 中的 setting 和 仓库配置 错误情况下,修改为正确的配置后(尤其关注setting文件的仓库地址是否具备公司的私库) 可以重新下包
maven 中的 setting 和 仓库配置 正确情况下,依赖无法正常引入包, 参考1.2
1.2 idea 可以重试清理缓存 , File -> invailDated Caches 清理缓存后会重新依赖包
如果还是无法引入包, 则可以参考1.3
1.3 找到仓库路径下的依赖包,看包是否存在
仓库路径下存在 jar包信息, 则表明是idea抽风, 可以把该路径的 父级或者父父级别的路径删除后, 重新打开idea 中的maven 执行 reimport 命令
仓库路径下不存在 jar包信息, 亦可选择选择删除文件夹重新下载
1.4 重新下载还是不行情况下,就要确认是否能正常访问maven的仓库,可以选择在本地ping一下
1.5 能ping通环境同时下载不了依赖包,需查看 maven 的仓库(公司的私有maven库) 是否存在该 jar 包
可能是偶发的网络问题导致,也有可能是压根不存在该包
不存在该包,则需要重新打包发布甚至打包上传
一般确认到这步,maven基本都能够正常的下载包了,1.5之后的情况属于 下载jar包但是依赖不了某些类的情况
1.6 包依赖了但是某些类缺失,可以查看依赖的版本是否是自己需要的版本
借助 idea插件 -- maven helper, 可以查看主pom下冲突的依赖包情况(有些时候由于包之间的子依赖的重复依赖,会导致maven根据最近原则选择版本,这个时候版本并不一定是自己需要的)
可能是包版本不对,可以选择升高或者降低对应的版本,笔者是需要依赖的包是公司内部的包,是可以自己打包发布的.在正常的发布后也成功依赖了,检查版本也对情况下,依然存在类缺失的情况,从而去maven库下载了jar包查询,发现虽然打包但是jar包内部的类是缺失的.所以选择重新发包即可
所以公共开源包出现缺失,可能就是版本不对,而导致版本不对,可能是依赖冲突或者是本身依赖的版本不对.