Maven使用shade插件实现包的自动重命名,以解决依赖冲突

最近在写一个hadoop的job,其中依赖了guava,我需要的版本是27.2-jre

然而,不幸的是,Hadoop集群上是2.7.2,其中也有guava版本,11.0.2

更坑的是,guava在16之后有break change,无法向下兼容。

导致不管怎么运行,都会出现:
Error: com.google.common.hash.Funnels.stringFunnel(Ljava/nio/charset/Charset;)Lcom/google/common/hash[……]

继续阅读