什么时候需要源码编译
一般来说,源码编译是不需要的,用户可以直接在 Flink CDC 官网下载官方编译好的二进制包或者在 pom.xml 文件中添加相关依赖即可。
以下几种情况需要进行源码编译:
- 用户对Flink CDC 源码进行了修改
- Flink CDC 某依赖项的版本与运行环境不一致
例如笔者拉取了最新的 Flink CDC 源码,这份源码依赖的 Flink 版本是 1.13.5,但是笔者实际运行环境用的是 1.13.6, 两个版本不一致。为了使得 Flink CDC 依赖的 Flink 版本与运行环境一致,需修改 pom.xml 文件中 Flink 的版本号,然后重新对 Flink CDC 的源码进行编译。
下载源码
$ git clone https://github.com/ververica/flink-cdc-connectors.git
Cloning into 'flink-cdc-connectors'...
remote: Enumerating objects: 7187, done.
remote: Counting objects: 100% (7186/7186), done.
remote: Compressing objects: 100% (2504/2504), done.
remote: Total 7187 (delta 2777), reused 7001 (delta 2690), pack-reused 1
Receiving objects: 100% (7187/7187), 10.47 MiB | 9.16 MiB/s, done.
Resolving deltas: 100% (2777/2777), done.
修改 pom.xml
在 pom.xml 中找到这一项:flink.version
修改 flink 版本号为:
<flink.version>1.13.6</flink.version>
编译
cd /opt/flink-cdc-connectors
mvn clean package -DskipTests
[INFO] Reactor Summary for flink-cdc-connectors 2.2-SNAPSHOT:
[INFO]
[INFO] flink-cdc-connectors ............................... SUCCESS [ 1.666 s]
[INFO] flink-connector-debezium ........................... SUCCESS [ 2.733 s]
[INFO] flink-connector-test-util .......................... SUCCESS [ 0.623 s]
[INFO] flink-connector-mysql-cdc .......................... SUCCESS [ 3.039 s]
[INFO] flink-connector-postgres-cdc ....................... SUCCESS [ 0.718 s]
[INFO] flink-connector-oracle-cdc ......................... SUCCESS [ 0.889 s]
[INFO] flink-connector-mongodb-cdc ........................ SUCCESS [ 0.785 s]
[INFO] flink-connector-sqlserver-cdc ...................... SUCCESS [ 0.576 s]
[INFO] flink-sql-connector-mysql-cdc ...................... SUCCESS [ 32.567 s]
[INFO] flink-sql-connector-postgres-cdc ................... SUCCESS [ 2.368 s]
[INFO] flink-sql-connector-mongodb-cdc .................... SUCCESS [ 3.245 s]
[INFO] flink-sql-connector-oracle-cdc ..................... SUCCESS [ 3.290 s]
[INFO] flink-sql-connector-sqlserver-cdc .................. SUCCESS [ 2.087 s]
[INFO] flink-format-changelog-json ........................ SUCCESS [ 1.696 s]
[INFO] flink-cdc-e2e-tests ................................ SUCCESS [ 15.605 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:12 min
[INFO] Finished at: 2022-02-20T22:00:35+08:00
[INFO] ------------------------------------------------------------------------
如果 maven 下载速度慢,可以在 pom.xml 文件加入这一段
<repositories>
<repository>
<id>tbds</id>
<url>https://maven.aliyun.com/repository/public</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>