maven将依赖转为本地依赖后,报错找不到相关类

本文介绍了一种解决Maven项目在使用本地依赖时遇到的类找不到问题的方法,通过使用Idea插件MavenHelper来对比依赖差异,确保所有必要的依赖都被正确引入。

maven将依赖转为本地依赖后,报错找不到相关类

场景描述

项目信息:springboot

原始部署

原本部署是将项目由本地打包成jar包,然后运行dockerfile打包成镜像后,在某台服务器上进行部署运行

新的部署

现在将项目制作成流水线,然后在流水线中拉取gitlab中的代码,然后执行maven install,之后执行dockerfile打包成镜像,推送到镜像仓库中。

问题

由于流水线也好,镜像仓库也好,都是公司不知道用了哪些开源技术制作出来的自己的一套东西,问题就出在maven install这一步,在流水线上打包的时候,maven从公司的私有仓库里下载依赖,某些依赖仓库里没有,而对maven的阿里源等又不通,所以只能将依赖换成本地jar包,放在lib目录下引入:
在这里插入图片描述
可是修改完运行的时候,报错找不到某个类,在使用mvn公共仓库的时候是没有问题的。

解决办法

借助idea插件:Maven Helper

1、打开pom文件,首先将pom恢复到正常可用的状态,点击进入dependency analyzer在这里插入图片描述
选中all dependencies as list,然后ctrl+A全选,Ctrl+C复制到Excel中
在这里插入图片描述
2、将需要改为本地依赖的jar包修改完成以后,点击refresh UI
在这里插入图片描述
重复上面的操作,将依赖列表复制到Excel的第二列,两列一对比,就可以找出少了那些依赖,将这些依赖挨个复制到lib目录下,引入一下就可以。

原因分析

当maven配置依赖为system时,只会引入该jar包,不会引入其相关依赖的jar包,导致切换到本地依赖以后出现了找不到xxx类的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值