关于项目发到现场部署时缺少hutool工具依赖的问题

发布时间 2023-06-09 09:04:52作者: 小许不错不错不错

关于hutool工具包使用总结

一、问题

  1. 在内蒙反写项目中,因为是新部署的项目,有些jar包现场并没有,在发包运行后,产生异常,显示cn.hutool:hutool-ali:jar:5.7.21 的库无法被解析和下载

     

二、分析问题

没办法我又在网上找了一圈,发现出现这种问题大多就4种情况

  1. 依赖库信息错误:请检查项目的 pom.xml 文件中的依赖库信息,如依赖关系版本号不正确
  2. 本地 Maven 仓库缺少依赖库:Maven 会在本地仓库中缓存所有项目所依赖的库。如果本地仓库中缺少所需的库,Maven 就无法解析依赖关系。您可以尝试清空本地仓库并重新构建项目,以便 Maven 重新下载所有依赖库。
  3. 远程仓库无法访问:如果依赖库托管在远程仓库中,则需要确保仓库可访问,并且依赖库在仓库中可用。
  4. 依赖关系版本不匹配:如果您的项目依赖于其他项目或库,那么必须确保版本兼容。如果依赖关系的版本不兼容,则可能会导致运行时错误或构建错误。
  5. 代理或防火墙问题:如果您在代理或防火墙后面,则可能需要配置 Maven 以使用代理或通过防火墙。

三、处理问题

看到报错后我觉得应该是现场没有这个jar包,所以就将hutool工具的jar包发到现场但是发包后还是出现一样的问题,但是我再本地运行,发现我的工具包并没有问题,所以开始想,既然jar是能用的,那会不会是版本不匹配,所以我又让将pom里jar包文件换成了现场有的jar包

首先,既然本地可以运行那应该不是情况1。其次,项目并不是用到远程仓库,所以应该也不是情况3和5。最后就只有2和4。因为我已经将本地jar包发到现场所以我觉得应该不是情况2。

   

但结果还是一样。

四、解决问题

所以最后还是觉得版本不匹配的可能性最大,但我换了几个版本还是不行。
最后发现报错上还有一个不能调用hutool-parent;于是将本地对应版本的hutool-parent包发到现场,解决了问题。

虽然问题解决,但是还是有一个问题就是这个包是什么时候下载的,明明pom文件里面是hutool-all,为什么调用的时候还会用到hutool-parent

五、总结

最后经过一些搜索了解后才知道:hutool-all则包含了所有Hutool工具类的代码和依赖库,但它并不会自动解决版本冲突或包依赖问题。

而hutool-parent是Hutool工具库的一个父级pom模块,管理了Hutool所有模块的版本信息和依赖库信息,本身其实并不包含任何实际的代码或功能。

同时引入 hutool-parent 和 hutool-all,这样可以确保子模块之间的依赖关系得到正确解析。