guava包的问题[阿里云]

在解决Flink1.13.3和FlinkCDC2.4.1的guava冲突时,将Flink中的guava排除,加上30.1.1-jre-16.0报org.apache.flink.shaded.guava18.com.google.common.collect.Lists,如果将FlinkCDC中的guava排除,加上18.0-13.0版本,报 org.apache.flink.shaded.guava30.com.google.common.util.concurrent.ThreadFactoryBuilder,这应该怎么解决

以下为热心网友提供的参考意见

这个问题看起来是由于Flink和FlinkCDC中使用的Guava版本不一致导致的。Flink 1.13.3可能使用了Guava 18.0,而FlinkCDC 2.4.1可能使用了Guava 30.1.1。以下是一些可能的解决步骤:

  1. 统一Guava版本:
    尝试将整个项目中的Guava版本统一为一个兼容的版本。这可能需要对Flink和FlinkCDC的依赖项进行一些调整。你已经尝试过将FlinkCDC的Guava版本降级到18.0和将Flink的Guava升级到30.1.1,但都遇到了问题。可能需要找到一个既能被Flink接受又能被FlinkCDC接受的中间版本。
  2. shading Guava:
    另一种可能的解决方案是使用shade插件来重命名Guava的包名,以避免版本冲突。在Flink或FlinkCDC的构建过程中,你可以配置shade插件来将Guava的包名(例如com.google.common)重命名为一个唯一的名称(例如com.myproject.guava)。这样,即使两个库使用了不同版本的Guava,也不会因为包名冲突而出现问题。
  3. 检查其他依赖:
    确保你的项目中没有其他依赖项也引入了不同的Guava版本。如果有,你可能需要调整这些依赖项的版本或者使用 exclusions 标签来排除它们自带的Guava。
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====