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

今天做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打进去呢?

理解不了

相关推荐