办理高版本flink cdc connector缺少依靠的题目

种地  金牌会员 | 2024-11-3 18:58:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 932|帖子 932|积分 2796

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文件,文件内容如下(注意:只有一个依靠):
  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.   <modelVersion>4.0.0</modelVersion>
  5.   <groupId>org.apache.flink</groupId>
  6.   <artifactId>flink-connector-mysql-cdc</artifactId>
  7.   <version>3.1.1-with-dependencies</version>
  8.   <dependencies>
  9.     <dependency>
  10.       <groupId>org.apache.flink</groupId>
  11.       <artifactId>flink-connector-mysql-cdc</artifactId>
  12.       <version>3.1.1</version>
  13.     </dependency>
  14.   </dependencies>
  15.   <build>
  16.     <plugins>
  17.       <plugin>
  18.         <groupId>org.apache.maven.plugins</groupId>
  19.         <artifactId>maven-dependency-plugin</artifactId>
  20.         <version>3.1.2</version>
  21.         <executions>
  22.           <execution>
  23.             <id>copy-dependencies</id>
  24.             <phase>package</phase>
  25.             <goals>
  26.               <goal>copy-dependencies</goal>
  27.             </goals>
  28.             <configuration>
  29.               <outputDirectory>${project.build.directory}/lib</outputDirectory>
  30.               <includeScope>runtime</includeScope>
  31.             </configuration>
  32.           </execution>
  33.         </executions>
  34.       </plugin>
  35.     </plugins>
  36.   </build>
  37. </project>
复制代码

然后执行如下命令下载:
  1. mvn clean package
复制代码
构建乐成,可以在项目的目录有一个target,内里有一个lib目录,这些就是cdc jar全部的依靠了:

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

pom的内容如下:
  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.   <modelVersion>4.0.0</modelVersion>
  5.   <groupId>org.apache.flink</groupId>
  6.   <artifactId>flink-connector-mysql-cdc</artifactId>
  7.   <version>3.1.1-with-dependencies</version>
  8.   <dependencies>
  9.     <dependency>
  10.       <groupId>org.apache.flink</groupId>
  11.       <artifactId>flink-connector-mysql-cdc</artifactId>
  12.       <version>3.1.1</version>
  13.     </dependency>
  14.   </dependencies>
  15.   <build>
  16.     <plugins>
  17.       <plugin>
  18.         <groupId>org.apache.maven.plugins</groupId>
  19.         <artifactId>maven-shade-plugin</artifactId>
  20.         <version>3.2.4</version>
  21.         <executions>
  22.           <execution>
  23.             <phase>package</phase>
  24.             <goals>
  25.               <goal>shade</goal>
  26.             </goals>
  27.             <configuration>
  28.               <outputFile>${project.build.directory}/${project.artifactId}-with-dependencies.jar</outputFile>
  29.             </configuration>
  30.           </execution>
  31.         </executions>
  32.       </plugin>
  33.     </plugins>
  34.   </build>
  35. </project>
复制代码
同样执行如下命令:
  1. mvn clean package
复制代码

在本地,也能看到它的体积是比较大的:

3. 文末

本文主要讲解高版本flink cdc连接其缺少依靠的题目,主要利用“dependency”以及“shade”插件来打包,希望能资助到各人,谢谢各人的阅读,本文完!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表