You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by fa...@apache.org on 2022/09/06 06:41:04 UTC

[incubator-seatunnel] branch dev updated: [Improve][e2e] connectors e2e use separate module (#2648)

This is an automated email from the ASF dual-hosted git repository.

fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 617f6c3bd [Improve][e2e] connectors e2e use separate module (#2648)
617f6c3bd is described below

commit 617f6c3bda23aed923e6b0e8dbfa6c59e147fc5c
Author: hailin0 <wa...@apache.org>
AuthorDate: Tue Sep 6 14:40:57 2022 +0800

    [Improve][e2e] connectors e2e use separate module (#2648)
    
    * [Improve][e2e] connectors e2e use separate module
    
    * fix
---
 .../connector-assert-flink-e2e}/pom.xml            | 14 ++++---
 .../flink/v2/assertion/FakeSourceToAssertIT.java   |  0
 .../resources/assertion/fakesource_to_assert.conf  |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-datahub-flink-e2e}/pom.xml           | 14 ++++---
 .../flink/v2/datahub/FakeSourceToDatahubIT.java    |  0
 .../resources/datahub/fakesource_to_datahub.conf   |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-fake-flink-e2e}/pom.xml              | 13 ++++---
 .../e2e/flink/v2/fake/FakeSourceToConsoleIT.java   |  0
 .../test/resources/fake/fakesource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-file-flink-e2e}/pom.xml              | 23 +++++------
 .../e2e/flink/v2/file/FakeSourceToFileIT.java      |  0
 .../resources/file/fakesource_to_hdfs_json.conf    |  0
 .../resources/file/fakesource_to_hdfs_parquet.conf |  0
 .../resources/file/fakesource_to_hdfs_text.conf    |  0
 .../resources/file/fakesource_to_local_json.conf   |  0
 .../file/fakesource_to_local_parquet.conf          |  0
 .../resources/file/fakesource_to_local_text.conf   |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-flink-e2e-base}/pom.xml              | 44 ++++++++++++----------
 .../apache/seatunnel/e2e/flink/FlinkContainer.java |  2 +-
 .../connector-iotdb-flink-e2e}/pom.xml             | 14 ++++---
 .../e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java    |  0
 .../test/resources/iotdb/fakesource_to_iotdb.conf  |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-jdbc-flink-e2e}/pom.xml              | 19 ++++------
 .../e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java      |  0
 .../e2e/flink/v2/jdbc/JdbcGreenplumIT.java         |  0
 .../seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java |  0
 .../e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java   |  0
 .../test/resources/jdbc/fakesource_to_jdbc.conf    |  0
 .../jdbc/jdbc_greenplum_source_and_sink.conf       |  0
 .../jdbc/jdbc_phoenix_source_and_sink.conf         |  0
 .../test/resources/jdbc/jdbcsource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-redis-flink-e2e}/pom.xml             | 13 ++++---
 .../seatunnel/e2e/flink/v2/redis/RedisIT.java      |  0
 .../src/test/resources/log4j.properties            |  0
 .../src/test/resources/redis/redis_source.conf     |  0
 .../seatunnel-flink-connector-v2-e2e/pom.xml       | 34 ++++++++++-------
 seatunnel-e2e/seatunnel-flink-e2e/pom.xml          | 19 +++++++++-
 .../seatunnel-connector-flink-assert-e2e}/pom.xml  | 18 ++++-----
 .../e2e/flink/assertion/FakeSourceToAssertIT.java  |  0
 .../resources/assertion/fakesource_to_assert.conf  |  0
 .../src/test/resources/log4j.properties            |  0
 .../pom.xml                                        | 13 ++++---
 .../flink/clickhouse/FakeSourceToClickhouseIT.java |  0
 .../clickhouse/fakesource_to_clickhouse.conf       |  0
 .../src/test/resources/log4j.properties            |  0
 .../seatunnel-connector-flink-e2e-base}/pom.xml    | 39 +++++++++++--------
 .../apache/seatunnel/e2e/flink/FlinkContainer.java |  2 +-
 .../pom.xml                                        | 13 ++++---
 .../e2e/flink/fake/FakeSourceToConsoleIT.java      |  0
 .../test/resources/fake/fakesource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../pom.xml                                        | 13 ++++---
 .../e2e/flink/file/FakeSourceToFileIT.java         |  0
 .../test/resources/file/fakesource_to_file.conf    |  0
 .../src/test/resources/log4j.properties            |  0
 .../pom.xml                                        | 13 ++++---
 .../e2e/flink/http/HttpSourceToConsoleIT.java      |  0
 .../test/resources/http/httpsource_to_console.conf |  8 ++--
 .../src/test/resources/log4j.properties            |  0
 seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml      | 16 +++++++-
 .../pom.xml                                        | 39 +++++++++++--------
 .../seatunnel/e2e/flink/sql/FlinkContainer.java    |  2 +-
 .../pom.xml                                        | 15 +++-----
 .../e2e/flink/sql/fake/DatagenToConsoleIT.java     |  0
 .../src/test/resources/fake/flink.sql.conf         |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-datahub-spark-e2e}/pom.xml           | 13 ++++---
 .../spark/v2/datahub/FakeSourceToDatahubIT.java    |  0
 .../resources/datahub/fakesource_to_datahub.conf   |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-fake-spark-e2e}/pom.xml              | 13 ++++---
 .../e2e/spark/v2/fake/FakeSourceToConsoleIT.java   |  0
 .../test/resources/fake/fakesource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-file-spark-e2e}/pom.xml              | 23 +++++------
 .../e2e/spark/v2/file/FakeSourceToFileIT.java      |  0
 .../resources/file/fakesource_to_hdfs_json.conf    |  0
 .../resources/file/fakesource_to_hdfs_parquet.conf |  0
 .../resources/file/fakesource_to_hdfs_text.conf    |  0
 .../resources/file/fakesource_to_local_json.conf   |  0
 .../file/fakesource_to_local_parquet.conf          |  0
 .../resources/file/fakesource_to_local_text.conf   |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-iotdb-spark-e2e}/pom.xml             | 13 ++++---
 .../e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java    |  0
 .../test/resources/iotdb/fakesource_to_iotdb.conf  |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-jdbc-spark-e2e}/pom.xml              | 13 ++++---
 .../e2e/spark/v2/jdbc/JdbcGreenplumIT.java         |  0
 .../seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java |  0
 .../jdbc/jdbc_greenplum_source_and_sink.conf       |  0
 .../jdbc/jdbc_phoenix_source_and_sink.conf         |  0
 .../src/test/resources/log4j.properties            |  0
 .../connector-redis-spark-e2e}/pom.xml             | 13 ++++---
 .../seatunnel/e2e/spark/v2/redis/RedisIT.java      |  0
 .../src/test/resources/log4j.properties            |  0
 .../src/test/resources/redis/redis_source.conf     |  0
 .../{ => connector-spark-e2e-base}/pom.xml         | 43 +++++++++++----------
 .../apache/seatunnel/e2e/spark/SparkContainer.java |  2 +-
 .../seatunnel-spark-connector-v2-e2e/pom.xml       | 22 ++++++++++-
 seatunnel-e2e/seatunnel-spark-e2e/pom.xml          | 27 +++++++------
 .../seatunnel-connector-spark-e2e-base}/pom.xml    | 39 +++++++++++--------
 .../apache/seatunnel/e2e/spark/SparkContainer.java |  2 +-
 .../seatunnel-connector-spark-fake-e2e}/pom.xml    | 13 ++++---
 .../e2e/spark/fake/FakeSourceToConsoleIT.java      |  0
 .../test/resources/fake/fakesource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../seatunnel-connector-spark-http-e2e}/pom.xml    | 13 ++++---
 .../e2e/spark/http/HttpSourceToConsoleIT.java      |  0
 .../test/resources/http/httpsource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 .../seatunnel-connector-spark-jdbc-e2e}/pom.xml    | 19 ++++------
 .../e2e/spark/jdbc/FakeSourceToJdbcIT.java         |  0
 .../e2e/spark/jdbc/JdbcSourceToConsoleIT.java      |  0
 .../test/resources/jdbc/fakesource_to_jdbc.conf    |  0
 .../test/resources/jdbc/jdbcsource_to_console.conf |  0
 .../src/test/resources/log4j.properties            |  0
 123 files changed, 394 insertions(+), 274 deletions(-)

diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml
index 99e57218b..37de9280a 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/pom.xml
@@ -17,26 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-assert-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-assert</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/assertion/FakeSourceToAssertIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/assertion/fakesource_to_assert.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/assertion/fakesource_to_assert.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-assert-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml
index 99e57218b..2adf5557e 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/pom.xml
@@ -17,26 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-datahub-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-datahub</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/datahub/FakeSourceToDatahubIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/datahub/fakesource_to_datahub.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/log4j.properties
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-datahub-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml
index 99e57218b..299c2dddc 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-fake-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-fake</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/fake/FakeSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/fake/fakesource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/fake/fakesource_to_console.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/fake/fakesource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-fake-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml
similarity index 75%
copy from seatunnel-e2e/seatunnel-spark-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml
index ca1c64647..70e91ec79 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/pom.xml
@@ -17,36 +17,33 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-spark-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-file-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-spark-dist</artifactId>
+            <artifactId>connector-file-local</artifactId>
             <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>1.17.3</version>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
+            <groupId>org.apache.seatunnel</groupId>
+            <artifactId>connector-file-hadoop</artifactId>
+            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/file/FakeSourceToFileIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_json.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_json.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_json.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_json.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_parquet.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_text.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_text.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/file/fakesource_to_local_text.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/file/fakesource_to_local_text.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-file-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml
similarity index 58%
copy from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml
index 4da27bcf0..57a12fa6c 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/pom.xml
@@ -18,30 +18,34 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <packaging>jar</packaging>
 
-    <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
+    <artifactId>connector-flink-e2e-base</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-v2-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-        </dependency>
-    </dependencies>
+    <properties>
+        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+    </properties>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven-jar-plugin.version}</version>
+                <configuration>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
similarity index 99%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
index 7d80707e8..4fe612a09 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
@@ -52,7 +52,7 @@ public abstract class FlinkContainer {
 
     protected GenericContainer<?> jobManager;
     protected GenericContainer<?> taskManager;
-    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent();
+    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent();
     private static final String SEATUNNEL_FLINK_BIN = "start-seatunnel-flink-new-connector.sh";
     private static final String SEATUNNEL_FLINK_JAR = "seatunnel-flink-starter.jar";
     private static final String PLUGIN_MAPPING_FILE = "plugin-mapping.properties";
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml
index 99e57218b..30c1ae671 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/pom.xml
@@ -17,26 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-iotdb-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-iotdb</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/iotdb/FakeSourceToIoTDBIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-iotdb-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml
similarity index 81%
copy from seatunnel-e2e/seatunnel-spark-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml
index ca1c64647..e4361c359 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/pom.xml
@@ -17,38 +17,35 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-spark-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-jdbc-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-spark-dist</artifactId>
+            <artifactId>connector-jdbc</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
-
         <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>postgresql</artifactId>
             <version>1.17.3</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/FakeSourceToJdbcIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcGreenplumIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcPhoenixIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/jdbc/JdbcSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-jdbc-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml
index 99e57218b..a1b314bd1 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-redis-flink-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-redis</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/v2/redis/RedisIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/redis/redis_source.conf b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/redis/redis_source.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/redis/redis_source.conf
rename to seatunnel-e2e/seatunnel-flink-connector-v2-e2e/connector-redis-flink-e2e/src/test/resources/redis/redis_source.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
index 38399d10c..737e6c323 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
@@ -22,38 +22,44 @@
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
 
     <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
 
+    <modules>
+        <module>connector-flink-e2e-base</module>
+        <module>connector-redis-flink-e2e</module>
+        <module>connector-file-flink-e2e</module>
+        <module>connector-jdbc-flink-e2e</module>
+        <module>connector-iotdb-flink-e2e</module>
+        <module>connector-datahub-flink-e2e</module>
+        <module>connector-assert-flink-e2e</module>
+        <module>connector-fake-flink-e2e</module>
+    </modules>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-core-flink</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-connectors-v2-dist</artifactId>
             <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>1.17.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
             <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
-
         <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
+            <scope>test</scope>
         </dependency>
-
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
index 99e57218b..2ca2e1861 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
@@ -24,18 +24,35 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>seatunnel-connector-flink-e2e-base</module>
+        <module>seatunnel-connector-flink-clickhouse-e2e</module>
+        <module>seatunnel-connector-flink-file-e2e</module>
+        <module>seatunnel-connector-flink-http-e2e</module>
+        <module>seatunnel-connector-flink-fake-e2e</module>
+        <module>seatunnel-connector-flink-assert-e2e</module>
+    </modules>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-core-flink</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-connectors-flink-dist</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml
index 4da27bcf0..fd262b6f3 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/pom.xml
@@ -17,30 +17,28 @@
          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">
     <parent>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <packaging>jar</packaging>
 
-    <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
+    <artifactId>seatunnel-connector-flink-assert-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
+            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-v2-dist</artifactId>
+            <artifactId>seatunnel-connector-flink-assert</artifactId>
             <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/java/org/apache/seatunnel/e2e/flink/assertion/FakeSourceToAssertIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/assertion/fakesource_to_assert.conf
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/assertion/fakesource_to_assert.conf
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-assert-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml
similarity index 78%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml
index 99e57218b..87ef96e07 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-flink-clickhouse-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-flink-clickhouse</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/java/org/apache/seatunnel/e2e/flink/clickhouse/FakeSourceToClickhouseIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/clickhouse/fakesource_to_clickhouse.conf
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/log4j.properties
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/resources/log4j.properties
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-clickhouse-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml
similarity index 58%
copy from seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml
index e3db7da71..32f26486d 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/pom.xml
@@ -17,26 +17,35 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-sql-e2e</artifactId>
+    <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink-sql</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-sql-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-    </dependencies>
+    <properties>
+        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+    </properties>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven-jar-plugin.version}</version>
+                <configuration>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
similarity index 99%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
index 54e5a712d..f3308dead 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/FlinkContainer.java
@@ -52,7 +52,7 @@ public abstract class FlinkContainer {
 
     protected GenericContainer<?> jobManager;
     protected GenericContainer<?> taskManager;
-    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent();
+    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent();
     private static final String SEATUNNEL_FLINK_BIN = "start-seatunnel-flink.sh";
     private static final String SEATUNNEL_FLINK_JAR = "seatunnel-core-flink.jar";
     private static final String PLUGIN_MAPPING_FILE = "plugin-mapping.properties";
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml
index 99e57218b..873d6c65f 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-flink-fake-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-flink-fake</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/fake/FakeSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/fake/fakesource_to_console.conf
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-fake-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml
index 99e57218b..1bc0ebca3 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-flink-file-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-flink-file</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/java/org/apache/seatunnel/e2e/flink/file/FakeSourceToFileIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/file/fakesource_to_file.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/file/fakesource_to_file.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/file/fakesource_to_file.conf
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/file/fakesource_to_file.conf
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-file-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml
index 99e57218b..000b29c2c 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-flink-http-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-flink-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-flink-http</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/java/org/apache/seatunnel/e2e/flink/http/HttpSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/http/httpsource_to_console.conf b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf
similarity index 94%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/http/httpsource_to_console.conf
rename to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf
index a7215a2fc..b69258913 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/http/httpsource_to_console.conf
+++ b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/http/httpsource_to_console.conf
@@ -27,10 +27,10 @@ env {
 
 source {
   # This is a example source plugin **only for test and demonstrate the feature source plugin**
-    Http {
-      url = "http://date.jsontest.com/"
-      result_table_name = "response_body"
-    }
+  Http {
+    url = "http://date.jsontest.com/"
+    result_table_name = "response_body"
+  }
 
   # If you would like to get more information about how to configure seatunnel and see full list of source plugins,
   # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-flink-e2e/seatunnel-connector-flink-http-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
index e3db7da71..ffd5e4919 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
@@ -22,21 +22,33 @@
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
 
     <artifactId>seatunnel-flink-sql-e2e</artifactId>
 
+    <modules>
+        <module>setunnel-connector-flink-sql-e2e-base</module>
+        <module>setunnel-connector-flink-sql-fake-e2e</module>
+    </modules>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-core-flink-sql</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-connectors-flink-sql-dist</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
-
     </dependencies>
-
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml
similarity index 58%
copy from seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml
index e3db7da71..2cd8cacdb 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/pom.xml
@@ -17,26 +17,35 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-sql-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-sql-e2e</artifactId>
+    <artifactId>setunnel-connector-flink-sql-e2e-base</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink-sql</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-sql-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-    </dependencies>
+    <properties>
+        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+    </properties>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven-jar-plugin.version}</version>
+                <configuration>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
similarity index 98%
rename from seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
rename to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
index 44fe388ee..082500856 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
+++ b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-e2e-base/src/test/java/org/apache/seatunnel/e2e/flink/sql/FlinkContainer.java
@@ -52,7 +52,7 @@ public abstract class FlinkContainer {
 
     protected GenericContainer<?> jobManager;
     protected GenericContainer<?> taskManager;
-    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent();
+    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent();
     private static final String SEATUNNEL_FLINK_BIN = "start-seatunnel-sql.sh";
     private static final String SEATUNNEL_FLINK_SQL_JAR = "seatunnel-core-flink-sql.jar";
     private static final String SEATUNNEL_HOME = "/tmp/flink/seatunnel";
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml
similarity index 78%
copy from seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml
index e3db7da71..9eda3de27 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/pom.xml
@@ -17,26 +17,23 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-flink-sql-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-sql-e2e</artifactId>
+    <artifactId>setunnel-connector-flink-sql-fake-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink-sql</artifactId>
+            <artifactId>setunnel-connector-flink-sql-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-sql-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java
rename to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/java/org/apache/seatunnel/e2e/flink/sql/fake/DatagenToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/resources/fake/flink.sql.conf b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/fake/flink.sql.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-sql-e2e/src/test/resources/fake/flink.sql.conf
rename to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/fake/flink.sql.conf
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/log4j.properties
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-e2e/src/test/resources/log4j.properties
rename to seatunnel-e2e/seatunnel-flink-sql-e2e/setunnel-connector-flink-sql-fake-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml
index 99e57218b..eb5d46f69 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-datahub-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-datahub</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/datahub/FakeSourceToDatahubIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/datahub/fakesource_to_datahub.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/datahub/fakesource_to_datahub.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-datahub-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml
index 99e57218b..8f2b4e6f1 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-fake-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-fake</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/fake/FakeSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/fake/fakesource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/fake/fakesource_to_console.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/fake/fakesource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-fake-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml
similarity index 75%
copy from seatunnel-e2e/seatunnel-spark-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml
index ca1c64647..7a310d19c 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/pom.xml
@@ -17,36 +17,33 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-spark-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-file-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-spark-dist</artifactId>
+            <artifactId>connector-file-local</artifactId>
             <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>1.17.3</version>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
+            <groupId>org.apache.seatunnel</groupId>
+            <artifactId>connector-file-hadoop</artifactId>
+            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/file/FakeSourceToFileIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_json.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_parquet.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_hdfs_text.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_json.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_json.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_json.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_json.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_parquet.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_parquet.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_text.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_text.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/file/fakesource_to_local_text.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/file/fakesource_to_local_text.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-file-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/pom.xml
index 99e57218b..171f5a27a 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-iotdb-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-iotdb</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/iotdb/FakeSourceToIoTDBIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/resources/iotdb/fakesource_to_iotdb.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-iotdb-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml
index 99e57218b..8d96fb66a 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-jdbc-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-jdbc</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcGreenplumIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcGreenplumIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcGreenplumIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcGreenplumIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/jdbc/JdbcPhoenixIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_greenplum_source_and_sink.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/jdbc/jdbc_phoenix_source_and_sink.conf
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-jdbc-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/pom.xml
similarity index 80%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/pom.xml
index 99e57218b..b5538ed1b 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>connector-redis-spark-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>connector-redis</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/redis/RedisIT.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/redis/RedisIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/redis/RedisIT.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/v2/redis/RedisIT.java
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/resources/log4j.properties
similarity index 100%
rename from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/src/test/resources/log4j.properties
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/redis/redis_source.conf b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/resources/redis/redis_source.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/resources/redis/redis_source.conf
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-redis-spark-e2e/src/test/resources/redis/redis_source.conf
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/pom.xml
similarity index 58%
copy from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/pom.xml
index 4da27bcf0..cbc8495c5 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/pom.xml
@@ -18,30 +18,35 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.seatunnel</groupId>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <packaging>jar</packaging>
 
-    <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
+    <artifactId>connector-spark-e2e-base</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-spark</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-v2-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
+    <properties>
+        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+    </properties>
 
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-        </dependency>
-    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven-jar-plugin.version}</version>
+                <configuration>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
similarity index 99%
rename from seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
rename to seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
index 139844612..984ecfe88 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
@@ -51,7 +51,7 @@ public abstract class SparkContainer {
     public static final Network NETWORK = Network.newNetwork();
 
     protected GenericContainer<?> master;
-    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent();
+    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent();
     private static final String SEATUNNEL_SPARK_BIN = "start-seatunnel-spark-new-connector.sh";
     private static final String SEATUNNEL_SPARK_JAR = "seatunnel-spark-starter.jar";
     private static final String PLUGIN_MAPPING_FILE = "plugin-mapping.properties";
diff --git a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
index 4da27bcf0..96d8bbb04 100644
--- a/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-connector-v2-e2e/pom.xml
@@ -22,25 +22,43 @@
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
 
     <artifactId>seatunnel-spark-connector-v2-e2e</artifactId>
 
+    <modules>
+        <module>connector-spark-e2e-base</module>
+        <module>connector-datahub-spark-e2e</module>
+        <module>connector-fake-spark-e2e</module>
+        <module>connector-file-spark-e2e</module>
+        <module>connector-iotdb-spark-e2e</module>
+        <module>connector-jdbc-spark-e2e</module>
+        <module>connector-redis-spark-e2e</module>
+    </modules>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-core-spark</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-connectors-v2-dist</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
-
         <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
index ca1c64647..5a80812f2 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-e2e/pom.xml
@@ -24,30 +24,33 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>seatunnel-spark-e2e</artifactId>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>seatunnel-connector-spark-e2e-base</module>
+        <module>seatunnel-connector-spark-jdbc-e2e</module>
+        <module>seatunnel-connector-spark-http-e2e</module>
+        <module>seatunnel-connector-spark-fake-e2e</module>
+    </modules>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-core-spark</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
             <artifactId>seatunnel-connectors-spark-dist</artifactId>
             <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>1.17.3</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
             <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/pom.xml
similarity index 58%
copy from seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/pom.xml
index e3db7da71..7fa7dfaa0 100644
--- a/seatunnel-e2e/seatunnel-flink-sql-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/pom.xml
@@ -17,26 +17,35 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-spark-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-sql-e2e</artifactId>
+    <artifactId>seatunnel-connector-spark-e2e-base</artifactId>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink-sql</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-sql-dist</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-    </dependencies>
+    <properties>
+        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
+    </properties>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven-jar-plugin.version}</version>
+                <configuration>
+                    <skip>false</skip>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
similarity index 99%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
index b3a828bea..6dca627ac 100644
--- a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
+++ b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-e2e-base/src/test/java/org/apache/seatunnel/e2e/spark/SparkContainer.java
@@ -51,7 +51,7 @@ public abstract class SparkContainer {
     public static final Network NETWORK = Network.newNetwork();
 
     protected GenericContainer<?> master;
-    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent();
+    private static final Path PROJECT_ROOT_PATH = Paths.get(System.getProperty("user.dir")).getParent().getParent().getParent();
     private static final String SEATUNNEL_SPARK_BIN = "start-seatunnel-spark.sh";
     private static final String SEATUNNEL_SPARK_JAR = "seatunnel-core-spark.jar";
     private static final String PLUGIN_MAPPING_FILE = "plugin-mapping.properties";
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/pom.xml
index 99e57218b..4dabac2fb 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-spark-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-spark-fake-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-spark-fake</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/fake/FakeSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/java/org/apache/seatunnel/e2e/spark/fake/FakeSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/fake/FakeSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/java/org/apache/seatunnel/e2e/spark/fake/FakeSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/fake/fakesource_to_console.conf b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/fake/fakesource_to_console.conf
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/resources/fake/fakesource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-fake-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/pom.xml
similarity index 79%
copy from seatunnel-e2e/seatunnel-flink-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/pom.xml
index 99e57218b..d859d86ee 100644
--- a/seatunnel-e2e/seatunnel-flink-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/pom.xml
@@ -17,25 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-spark-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-e2e</artifactId>
-    <packaging>jar</packaging>
+    <artifactId>seatunnel-connector-spark-http-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-flink-dist</artifactId>
+            <artifactId>seatunnel-connector-spark-http</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/http/HttpSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/java/org/apache/seatunnel/e2e/spark/http/HttpSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/http/HttpSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/java/org/apache/seatunnel/e2e/spark/http/HttpSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/http/httpsource_to_console.conf b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/resources/http/httpsource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/http/httpsource_to_console.conf
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/resources/http/httpsource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/resources/log4j.properties
similarity index 100%
copy from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-http-e2e/src/test/resources/log4j.properties
diff --git a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/pom.xml
similarity index 82%
copy from seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
copy to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/pom.xml
index 38399d10c..aecd54f82 100644
--- a/seatunnel-e2e/seatunnel-flink-connector-v2-e2e/pom.xml
+++ b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/pom.xml
@@ -17,24 +17,28 @@
          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">
     <parent>
-        <artifactId>seatunnel-e2e</artifactId>
+        <artifactId>seatunnel-spark-e2e</artifactId>
         <groupId>org.apache.seatunnel</groupId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>seatunnel-flink-connector-v2-e2e</artifactId>
+    <artifactId>seatunnel-connector-spark-jdbc-e2e</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-core-flink</artifactId>
+            <artifactId>seatunnel-connector-spark-e2e-base</artifactId>
             <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.seatunnel</groupId>
-            <artifactId>seatunnel-connectors-v2-dist</artifactId>
+            <artifactId>seatunnel-connector-spark-jdbc</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
@@ -42,18 +46,11 @@
             <version>1.17.3</version>
             <scope>test</scope>
         </dependency>
-
         <dependency>
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
             <scope>test</scope>
         </dependency>
-
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-        </dependency>
-
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/FakeSourceToJdbcIT.java b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/FakeSourceToJdbcIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/FakeSourceToJdbcIT.java
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/FakeSourceToJdbcIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/JdbcSourceToConsoleIT.java b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/JdbcSourceToConsoleIT.java
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/JdbcSourceToConsoleIT.java
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/java/org/apache/seatunnel/e2e/spark/jdbc/JdbcSourceToConsoleIT.java
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/jdbc/fakesource_to_jdbc.conf
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/jdbc/jdbcsource_to_console.conf
diff --git a/seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties b/seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/log4j.properties
similarity index 100%
rename from seatunnel-e2e/seatunnel-spark-e2e/src/test/resources/log4j.properties
rename to seatunnel-e2e/seatunnel-spark-e2e/seatunnel-connector-spark-jdbc-e2e/src/test/resources/log4j.properties