0


解决高版本flink cdc connector缺少依赖的问题

文章目录

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文件,文件内容如下(注意:只有一个依赖):

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.flink</groupId><artifactId>flink-connector-mysql-cdc</artifactId><version>3.1.1-with-dependencies</version><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-mysql-cdc</artifactId><version>3.1.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.2</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><includeScope>runtime</includeScope></configuration></execution></executions></plugin></plugins></build></project>

在这里插入图片描述
然后执行如下命令下载:

mvn clean package

构建成功,可以在项目的目录有一个target,里面有一个lib目录,这些就是cdc jar所有的依赖了:
在这里插入图片描述

2.1 方案二:maven-shade-plugin插件打包完整jar

pom的内容如下:

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.flink</groupId><artifactId>flink-connector-mysql-cdc</artifactId><version>3.1.1-with-dependencies</version><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-mysql-cdc</artifactId><version>3.1.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><outputFile>${project.build.directory}/${project.artifactId}-with-dependencies.jar</outputFile></configuration></execution></executions></plugin></plugins></build></project>

同样执行如下命令:

mvn clean package

在这里插入图片描述
在本地,也能看到它的体积是比较大的:
在这里插入图片描述

3. 文末

本文主要讲解高版本flink cdc连接其缺少依赖的问题,主要使用“dependency”以及“shade”插件来打包,希望能帮助到大家,谢谢大家的阅读,本文完!


本文转载自: https://blog.csdn.net/qq_20042935/article/details/141396718
版权归原作者 杨林伟 所有, 如有侵权,请联系我们删除。

“解决高版本flink cdc connector缺少依赖的问题”的评论:

还没有评论