在解决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。以下是一些可能的解决步骤:
- 统一Guava版本:
尝试将整个项目中的Guava版本统一为一个兼容的版本。这可能需要对Flink和FlinkCDC的依赖项进行一些调整。你已经尝试过将FlinkCDC的Guava版本降级到18.0和将Flink的Guava升级到30.1.1,但都遇到了问题。可能需要找到一个既能被Flink接受又能被FlinkCDC接受的中间版本。 - shading Guava:
另一种可能的解决方案是使用shade插件来重命名Guava的包名,以避免版本冲突。在Flink或FlinkCDC的构建过程中,你可以配置shade插件来将Guava的包名(例如com.google.common
)重命名为一个唯一的名称(例如com.myproject.guava
)。这样,即使两个库使用了不同版本的Guava,也不会因为包名冲突而出现问题。 - 检查其他依赖:
确保你的项目中没有其他依赖项也引入了不同的Guava版本。如果有,你可能需要调整这些依赖项的版本或者使用 exclusions 标签来排除它们自带的Guava。
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/11157.html