diff --git a/flink-cdc-dist/pom.xml b/flink-cdc-dist/pom.xml
index 2ebcd529b..c23b992ae 100644
--- a/flink-cdc-dist/pom.xml
+++ b/flink-cdc-dist/pom.xml
@@ -24,42 +24,88 @@ under the License.
4.0.0flink-cdc-dist
- jartrue
-
- flink-cdc-clicom.ververica
- ${project.version}
- ${markBundledAsOptional}
+ flink-cdc-common
+ ${revision}
-
- flink-cdc-commoncom.ververica
- ${project.version}
- ${markBundledAsOptional}
+ flink-cdc-runtime
+ ${revision}
-
- flink-cdc-composercom.ververica
- ${project.version}
- ${markBundledAsOptional}
+ flink-cdc-cli
+ ${revision}
-
- flink-cdc-runtimecom.ververica
- ${project.version}
- ${markBundledAsOptional}
+ flink-cdc-composer
+ ${revision}
-
-
\ No newline at end of file
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ shade-dist
+ package
+
+ shade
+
+
+ false
+ false
+ false
+ ${project.artifactId}-${revision}
+
+
+ *
+
+
+
+
+ org.apache.commons.cli
+ com.ververica.cdc.shaded.com.apache.commons.cli
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ dist
+
+ single
+
+ package
+
+ gnu
+ false
+ false
+ flink-cdc-${project.version}-bin
+
+ ${basedir}/src/main/assembly/assembly.xml
+
+
+
+
+
+
+
+
diff --git a/flink-cdc-dist/src/main/assembly/assembly.xml b/flink-cdc-dist/src/main/assembly/assembly.xml
new file mode 100644
index 000000000..dcb484994
--- /dev/null
+++ b/flink-cdc-dist/src/main/assembly/assembly.xml
@@ -0,0 +1,67 @@
+
+
+ dist
+
+ dir
+ tar.gz
+
+
+ true
+ flink-cdc-${revision}
+
+
+
+
+
+ lib
+ flink-cdc-dist-${revision}.jar
+ 0644
+
+
+
+
+
+
+ src/main/flink-cdc-bin/bin
+ bin
+ 0755
+
+
+
+
+ src/main/flink-cdc-bin/conf
+ conf
+ 0644
+
+
+
+
+ src/main/flink-cdc-bin/lib
+ lib
+ 0644
+
+
+
+
+ src/main/flink-cdc-bin/
+ log
+ 0644
+
+ **/*
+
+
+
+
diff --git a/flink-cdc-dist/src/main/flink-cdc-bin/bin/flink-cdc.sh b/flink-cdc-dist/src/main/flink-cdc-bin/bin/flink-cdc.sh
new file mode 100644
index 000000000..f7772ce95
--- /dev/null
+++ b/flink-cdc-dist/src/main/flink-cdc-bin/bin/flink-cdc.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+################################################################################
+# Copyright 2023 Ververica Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+################################################################################
+
+
diff --git a/flink-cdc-dist/src/main/flink-cdc-bin/conf/flink-cdc.yaml b/flink-cdc-dist/src/main/flink-cdc-bin/conf/flink-cdc.yaml
new file mode 100644
index 000000000..a03d876a3
--- /dev/null
+++ b/flink-cdc-dist/src/main/flink-cdc-bin/conf/flink-cdc.yaml
@@ -0,0 +1,14 @@
+
diff --git a/flink-cdc-dist/src/main/flink-cdc-bin/conf/log4j-cli.properties b/flink-cdc-dist/src/main/flink-cdc-bin/conf/log4j-cli.properties
new file mode 100644
index 000000000..d42bc5e06
--- /dev/null
+++ b/flink-cdc-dist/src/main/flink-cdc-bin/conf/log4j-cli.properties
@@ -0,0 +1,34 @@
+#
+# Copyright 2023 Ververica Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Allows this configuration to be modified at runtime. The file will be checked every 30 seconds.
+monitorInterval=30
+
+rootLogger.level = ${env:ROOT_LOG_LEVEL:-INFO}
+rootLogger.appenderRef.file.ref = FileAppender
+
+# Log all infos in the given file
+appender.file.name = FileAppender
+appender.file.type = FILE
+appender.file.append = false
+appender.file.fileName = ${sys:log.file}
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
+
+appender.console.name = ConsoleAppender
+appender.console.type = CONSOLE
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
diff --git a/pom.xml b/pom.xml
index 9f632b312..03efd5cb0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,8 +194,8 @@ under the License.
org.awaitilityawaitility
- jar${version.awaitility}
+ test