多个包共用类名引起的问题(hive-exec&guava)

本文详细介绍了在使用Hive执行时遇到NoSuchMethod Error的问题,原因在于Guava版本不匹配。通过分析问题,作者尝试了多种方法未能解决问题,最终通过调整Pom.xml中Guava的导入位置找到了解决方案。文章还提到了可能的解决方法,如使用maven-shade-plugin,并解释了Hive为何会引入Guava这一技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做UT,发现一个NoSuchMethod的Error.
原因是Hive.exec把版本11的guava打了进去。

这种问题一般都是由编译和运行不一样导致的。
想吧classpath输出出来,试了下verbose:classes和jps+jinfo,都没搞定。

就直接Object.toStringHelper().omitNullValues();
编译出错,那为什么在UT编译出错呢?
将Guava的在Pom.xml的位置提前..搞定。

为什么项目运行时候没问题呢,
我猜是guava.jar是g开头的……
搜了一下,maven-shade-plugin貌似可以解决这个问题。

那为什么hive要将guava打进去呢?
理解不了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值