文章目录
- 1. 引言
- 2. 解决方案
- 2.1 方案一:maven-dependency-plugin插件下载依赖
- 2.1 方案二:maven-shade-plugin插件打包完整jar
- 3. 文末
1. 引言
问题:非完整包导致缺少依赖
在Flink作业的开发场景中,我们可能会经常使用到很多的一些cdc connector,例如典型的mysql-cdc。一般我们都可以从maven仓库去下载,例如: https://mvnrepository.com/artifact/com.ververica/flink-connector-mysql-cdc/2.0.2
从上面的图片,可以看到cdc
的jar
包是完整的,所以我们的flink
作业直接引入,一般不会报NoClassDefException
,但是,高版本的cdc jar似乎就没有完整包了。
那么如何获取cdc jar的所有依赖呢?下面继续讲解。
2. 解决方案
2.1 方案一:maven-dependency-plugin插件下载依赖
先创建一个空的maven项目,没有任何内容,只有一个pom文件,文件内容如下(注意:只有一个依赖):
然后执行如下命令下载:
构建成功,可以在项目的目录有一个target,里面有一个lib目录,这些就是cdc jar所有的依赖了:
2.1 方案二:maven-shade-plugin插件打包完整jar
pom的内容如下:
同样执行如下命令:
在本地,也能看到它的体积是比较大的:
3. 文末
本文主要讲解高版本flink cdc连接其缺少依赖的问题,主要使用“dependency”以及“shade”插件来打包,希望能帮助到大家,谢谢大家的阅读,本文完!