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

hongze pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 08bdb4273d [GLUTEN-8208][CORE] A new unified approach of source folder 
isolation for iceberg / hudi / delta with Maven (#8198)
08bdb4273d is described below

commit 08bdb4273d2dea93d4d274735dc43278b2a9e1d6
Author: Hongze Zhang <[email protected]>
AuthorDate: Mon Dec 16 09:54:18 2024 +0800

    [GLUTEN-8208][CORE] A new unified approach of source folder isolation for 
iceberg / hudi / delta with Maven (#8198)
    
    Closes #8208
---
 backends-clickhouse/pom.xml                        | 111 +++------
 .../scala}/io/delta/tables/ClickhouseTable.scala   |   0
 .../gluten/parser/GlutenCacheFilesSqlParser.scala  |   0
 .../gluten/parser/GlutenClickhouseSqlParser.scala  |   0
 .../delta/ClickhouseOptimisticTransaction.scala    |   0
 .../org/apache/spark/sql/delta/DeltaAdapter.scala  |   0
 .../org/apache/spark/sql/delta/DeltaLog.scala      |   0
 .../org/apache/spark/sql/delta/Snapshot.scala      |   0
 .../sql/delta/catalog/ClickHouseTableV2.scala      |   0
 .../spark/sql/delta/commands/DeleteCommand.scala   |   0
 .../sql/delta/commands/MergeIntoCommand.scala      |   0
 .../sql/delta/commands/OptimizeTableCommand.scala  |   0
 .../commands/OptimizeTableCommandOverwrites.scala  |   0
 .../spark/sql/delta/commands/UpdateCommand.scala   |   0
 .../spark/sql/delta/commands/VacuumCommand.scala   |   0
 .../files/MergeTreeDelayedCommitProtocol.scala     |   0
 .../rules/CHOptimizeMetadataOnlyDeltaQuery.scala   |   0
 .../spark/sql/execution/CHDeltaColumnarWrite.scala |   0
 .../v2/clickhouse/ClickHouseDataSource.scala       |   0
 .../v2/clickhouse/ClickHouseSparkCatalog.scala     |   0
 .../source/DeltaMergeTreeFileFormat.scala          |   0
 .../spark/gluten/delta/DeltaStatsUtils.scala       |   0
 .../scala}/io/delta/tables/ClickhouseTable.scala   |   0
 .../gluten/parser/GlutenCacheFilesSqlParser.scala  |   0
 .../gluten/parser/GlutenClickhouseSqlParser.scala  |   0
 .../delta/ClickhouseOptimisticTransaction.scala    |   0
 .../org/apache/spark/sql/delta/DeltaAdapter.scala  |   0
 .../org/apache/spark/sql/delta/DeltaLog.scala      |   0
 .../org/apache/spark/sql/delta/Snapshot.scala      |   0
 .../sql/delta/catalog/ClickHouseTableV2.scala      |   0
 .../spark/sql/delta/commands/DeleteCommand.scala   |   0
 .../sql/delta/commands/MergeIntoCommand.scala      |   0
 .../sql/delta/commands/OptimizeTableCommand.scala  |   0
 .../commands/OptimizeTableCommandOverwrites.scala  |   0
 .../spark/sql/delta/commands/UpdateCommand.scala   |   0
 .../spark/sql/delta/commands/VacuumCommand.scala   |   0
 .../files/MergeTreeDelayedCommitProtocol.scala     |   0
 .../rules/CHOptimizeMetadataOnlyDeltaQuery.scala   |   0
 .../spark/sql/delta/stats/PrepareDeltaScan.scala   |   0
 .../spark/sql/execution/CHDeltaColumnarWrite.scala |   0
 .../v2/clickhouse/ClickHouseDataSource.scala       |   0
 .../v2/clickhouse/ClickHouseSparkCatalog.scala     |   0
 .../source/DeltaMergeTreeFileFormat.scala          |   0
 .../spark/gluten/delta/DeltaStatsUtils.scala       |   0
 .../scala}/io/delta/tables/ClickhouseTable.scala   |   0
 .../gluten/parser/GlutenCacheFilesSqlParser.scala  |   0
 .../gluten/parser/GlutenClickhouseSqlParser.scala  |   0
 .../delta/ClickhouseOptimisticTransaction.scala    |   0
 .../org/apache/spark/sql/delta/DeltaAdapter.scala  |   0
 .../org/apache/spark/sql/delta/DeltaLog.scala      |   0
 .../org/apache/spark/sql/delta/Snapshot.scala      |   0
 .../sql/delta/catalog/ClickHouseTableV2.scala      |   0
 .../spark/sql/delta/commands/DeleteCommand.scala   |   0
 .../sql/delta/commands/OptimizeTableCommand.scala  |   0
 .../commands/OptimizeTableCommandOverwrites.scala  |   0
 .../spark/sql/delta/commands/UpdateCommand.scala   |   0
 .../spark/sql/delta/commands/VacuumCommand.scala   |   0
 .../commands/merge/ClassicMergeExecutor.scala      |   0
 .../files/MergeTreeDelayedCommitProtocol.scala     |   0
 .../rules/CHOptimizeMetadataOnlyDeltaQuery.scala   |   0
 .../sql/execution/FileDeltaColumnarWrite.scala     |   0
 .../execution/MergeTreeDeltaColumnarWrite.scala    |   0
 .../clickhouse/MergeTreeFileFormatDataWriter.scala |   0
 .../v1/clickhouse/MergeTreeFileFormatWriter.scala  |   0
 .../v2/clickhouse/ClickHouseDataSource.scala       |   0
 .../v2/clickhouse/ClickHouseSparkCatalog.scala     |   0
 .../source/DeltaMergeTreeFileFormat.scala          |   0
 .../spark/gluten/delta/DeltaStatsUtils.scala       |   0
 .../services/org.apache.gluten.component.Component |   0
 .../gluten/component/CHIcebergComponent.scala      |   0
 .../execution/iceberg/ClickHouseIcebergSuite.scala |   0
 backends-velox/pom.xml                             |  84 +------
 .../apache/gluten/execution/VeloxDeltaSuite.scala  |   0
 .../gluten/execution/VeloxTPCHDeltaSuite.scala     |   0
 .../services/org.apache.gluten.component.Component |   0
 .../gluten/component/VeloxIcebergComponent.scala   |   0
 .../gluten/execution/VeloxIcebergSuite.scala       |   0
 .../gluten/execution/VeloxTPCHIcebergSuite.scala   |   0
 .../scala/org/apache/gluten/GlutenPlugin.scala     |   2 +-
 gluten-delta/pom.xml                               |  39 +---
 .../execution/DeltaFilterExecTransformer.scala     |   0
 .../execution/DeltaProjectExecTransformer.scala    |   0
 .../execution/DeltaFilterExecTransformer.scala     |   0
 .../execution/DeltaProjectExecTransformer.scala    |   0
 .../execution/DeltaFilterExecTransformer.scala     |   0
 .../execution/DeltaProjectExecTransformer.scala    |   0
 .../execution/DeltaFilterExecTransformer.scala     |   0
 .../execution/DeltaProjectExecTransformer.scala    |   0
 ...ten.execution.DataSourceScanTransformerRegister |   0
 ...uten.extension.columnar.RewriteTransformerRules |   0
 .../gluten/execution/DeltaScanTransformer.scala    |   0
 .../execution/DeltaScanTransformerProvider.scala   |   0
 .../extension/DeltaRewriteTransformerRules.scala   |   0
 .../org/apache/gluten/execution/DeltaSuite.scala   |   2 +-
 gluten-hudi/pom.xml                                |   9 -
 ...ten.execution.DataSourceScanTransformerRegister |   0
 .../gluten/execution/HudiScanTransformer.scala     |   0
 .../execution/HudiScanTransformerProvider.scala    |   0
 .../apache/gluten/execution/VeloxHudiSuite.scala   |   0
 .../gluten/execution/VeloxTPCHHudiSuite.scala      |   0
 gluten-iceberg/pom.xml                             |   9 -
 .../substrait/rel/IcebergLocalFilesBuilder.java    |   0
 .../substrait/rel/IcebergLocalFilesNode.java       |   0
 .../gluten/execution/IcebergScanTransformer.scala  |   0
 .../gluten/execution/OffloadIcebergScan.scala      |   0
 .../spark/source/GlutenIcebergSourceUtil.scala     |   0
 .../org/apache/iceberg/spark/source/TypeUtil.scala |   0
 .../org/apache/gluten/execution/IcebergSuite.scala |   0
 gluten-substrait/pom.xml                           |   9 +-
 package/pom.xml                                    |   1 -
 pom.xml                                            | 252 ++++++++++++++++++++-
 111 files changed, 287 insertions(+), 231 deletions(-)

diff --git a/backends-clickhouse/pom.xml b/backends-clickhouse/pom.xml
index a6042fd1cc..9a606c48e6 100644
--- a/backends-clickhouse/pom.xml
+++ b/backends-clickhouse/pom.xml
@@ -38,47 +38,6 @@
           <scope>test</scope>
         </dependency>
       </dependencies>
-      <build>
-        <resources>
-          <resource>
-            <directory>${project.basedir}/src/main-iceberg/resource</directory>
-          </resource>
-        </resources>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>add-iceberg-sources</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/main-iceberg/scala</source>
-                    <source>${project.basedir}/src/main-iceberg/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-              <execution>
-                <id>add-iceberg-test-sources</id>
-                <phase>generate-test-sources</phase>
-                <goals>
-                  <goal>add-test-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/test-iceberg/scala</source>
-                    <source>${project.basedir}/src/test-iceberg/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
     </profile>
   </profiles>
 
@@ -323,11 +282,6 @@
   </dependencies>
 
   <build>
-    <resources>
-      <resource>
-        <directory>${project.basedir}/src/main/resources</directory>
-      </resource>
-    </resources>
     
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
     
<testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
     <plugins>
@@ -353,6 +307,27 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>enforce-delta-profile</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireActiveProfile>
+                  <!--ClickHouse backend requires -P delta to be set-->
+                  <profiles>delta</profiles>
+                  <message>"-P delta" must be set when building Gluten with 
ClickHouse backend.</message>
+                </requireActiveProfile>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-resources-plugin</artifactId>
@@ -436,15 +411,15 @@
             <includes>
               <include>src/main/scala/**/*.scala</include>
               <include>src/test/scala/**/*.scala</include>
-              
<include>src/main/delta-${delta.binary.version}/**/*.scala</include>
-              
<include>src/test/delta-${delta.binary.version}/**/*.scala</include>
+              
<include>src-delta-${delta.binary.version}/main/delta/**/*.scala</include>
+              
<include>src-delta-${delta.binary.version}/test/delta/**/*.scala</include>
             </includes>
             <excludes>
-              
<exclude>src/main/delta-${delta.binary.version}/org/apache/spark/sql/delta/commands/*.scala</exclude>
-              
<exclude>src/main/delta-${delta.binary.version}/org/apache/spark/sql/delta/commands/merge/*.scala</exclude>
-              
<exclude>src/main/delta-${delta.binary.version}/org/apache/spark/sql/delta/stats/*.scala</exclude>
-              
<exclude>src/main/delta-${delta.binary.version}/org/apache/spark/sql/delta/DeltaLog.scala</exclude>
-              
<exclude>src/main/delta-${delta.binary.version}/org/apache/spark/sql/delta/Snapshot.scala</exclude>
+              
<exclude>src-delta-${delta.binary.version}/main/delta/org/apache/spark/sql/delta/commands/*.scala</exclude>
+              
<exclude>src-delta-${delta.binary.version}/main/delta/org/apache/spark/sql/delta/commands/merge/*.scala</exclude>
+              
<exclude>src-delta-${delta.binary.version}/main/delta/org/apache/spark/sql/delta/stats/*.scala</exclude>
+              
<exclude>src-delta-${delta.binary.version}/main/delta/org/apache/spark/sql/delta/DeltaLog.scala</exclude>
+              
<exclude>src-delta-${delta.binary.version}/main/delta/org/apache/spark/sql/delta/Snapshot.scala</exclude>
             </excludes>
           </scala>
         </configuration>
@@ -484,36 +459,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>add-sources</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>add-source</goal>
-            </goals>
-            <configuration>
-              <sources>
-                <source>src/main/delta-${delta.binary.version}</source>
-              </sources>
-            </configuration>
-          </execution>
-          <execution>
-          <id>add-test-sources</id>
-          <phase>generate-test-sources</phase>
-          <goals>
-            <goal>add-test-source</goal>
-          </goals>
-          <configuration>
-            <sources>
-              <source>src/test/delta-${delta.binary.version}</source>
-            </sources>
-          </configuration>
-        </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.antlr</groupId>
         <artifactId>antlr4-maven-plugin</artifactId>
diff --git 
a/backends-clickhouse/src/main/delta-20/io/delta/tables/ClickhouseTable.scala 
b/backends-clickhouse/src-delta-20/main/scala/io/delta/tables/ClickhouseTable.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/io/delta/tables/ClickhouseTable.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/io/delta/tables/ClickhouseTable.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/DeltaAdapter.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/DeltaAdapter.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/DeltaLog.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/DeltaLog.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/Snapshot.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/Snapshot.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/Snapshot.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/Snapshot.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/DeleteCommand.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/DeleteCommand.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/UpdateCommand.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/UpdateCommand.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/VacuumCommand.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/commands/VacuumCommand.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
diff --git 
a/backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
 
b/backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-20/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
rename to 
backends-clickhouse/src-delta-20/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
diff --git 
a/backends-clickhouse/src/test/delta-20/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
 
b/backends-clickhouse/src-delta-20/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
similarity index 100%
rename from 
backends-clickhouse/src/test/delta-20/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
rename to 
backends-clickhouse/src-delta-20/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/io/delta/tables/ClickhouseTable.scala 
b/backends-clickhouse/src-delta-23/main/scala/io/delta/tables/ClickhouseTable.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/io/delta/tables/ClickhouseTable.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/io/delta/tables/ClickhouseTable.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/DeltaAdapter.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/DeltaAdapter.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/DeltaLog.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/DeltaLog.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/Snapshot.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/Snapshot.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/Snapshot.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/Snapshot.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/DeleteCommand.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/DeleteCommand.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/MergeIntoCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/UpdateCommand.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/UpdateCommand.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/VacuumCommand.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/commands/VacuumCommand.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/stats/PrepareDeltaScan.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/stats/PrepareDeltaScan.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/delta/stats/PrepareDeltaScan.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/delta/stats/PrepareDeltaScan.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/CHDeltaColumnarWrite.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
diff --git 
a/backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
 
b/backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-23/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
rename to 
backends-clickhouse/src-delta-23/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
diff --git 
a/backends-clickhouse/src/test/delta-23/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
 
b/backends-clickhouse/src-delta-23/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
similarity index 100%
rename from 
backends-clickhouse/src/test/delta-23/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
rename to 
backends-clickhouse/src-delta-23/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/io/delta/tables/ClickhouseTable.scala 
b/backends-clickhouse/src-delta-32/main/scala/io/delta/tables/ClickhouseTable.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/io/delta/tables/ClickhouseTable.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/io/delta/tables/ClickhouseTable.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/gluten/parser/GlutenCacheFilesSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/gluten/parser/GlutenClickhouseSqlParser.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/ClickhouseOptimisticTransaction.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/DeltaAdapter.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/DeltaAdapter.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/DeltaAdapter.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/DeltaLog.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/DeltaLog.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/DeltaLog.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/Snapshot.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/Snapshot.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/Snapshot.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/Snapshot.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/catalog/ClickHouseTableV2.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/DeleteCommand.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/DeleteCommand.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/DeleteCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/OptimizeTableCommandOverwrites.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/UpdateCommand.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/UpdateCommand.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/UpdateCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/VacuumCommand.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/VacuumCommand.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/VacuumCommand.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/merge/ClassicMergeExecutor.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/merge/ClassicMergeExecutor.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/commands/merge/ClassicMergeExecutor.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/commands/merge/ClassicMergeExecutor.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/files/MergeTreeDelayedCommitProtocol.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/delta/rules/CHOptimizeMetadataOnlyDeltaQuery.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/FileDeltaColumnarWrite.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/FileDeltaColumnarWrite.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/FileDeltaColumnarWrite.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/FileDeltaColumnarWrite.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/MergeTreeDeltaColumnarWrite.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/MergeTreeDeltaColumnarWrite.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/MergeTreeDeltaColumnarWrite.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/MergeTreeDeltaColumnarWrite.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatDataWriter.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatDataWriter.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatDataWriter.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatDataWriter.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatWriter.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatWriter.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatWriter.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v1/clickhouse/MergeTreeFileFormatWriter.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseDataSource.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/ClickHouseSparkCatalog.scala
diff --git 
a/backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
 
b/backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
similarity index 100%
rename from 
backends-clickhouse/src/main/delta-32/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
rename to 
backends-clickhouse/src-delta-32/main/scala/org/apache/spark/sql/execution/datasources/v2/clickhouse/source/DeltaMergeTreeFileFormat.scala
diff --git 
a/backends-clickhouse/src/test/delta-32/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
 
b/backends-clickhouse/src-delta-32/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
similarity index 100%
rename from 
backends-clickhouse/src/test/delta-32/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
rename to 
backends-clickhouse/src-delta-32/test/scala/org/apache/spark/gluten/delta/DeltaStatsUtils.scala
diff --git 
a/backends-clickhouse/src/main-iceberg/resource/META-INF/services/org.apache.gluten.component.Component
 
b/backends-clickhouse/src-iceberg/main/resources/META-INF/services/org.apache.gluten.component.Component
similarity index 100%
rename from 
backends-clickhouse/src/main-iceberg/resource/META-INF/services/org.apache.gluten.component.Component
rename to 
backends-clickhouse/src-iceberg/main/resources/META-INF/services/org.apache.gluten.component.Component
diff --git 
a/backends-clickhouse/src/main-iceberg/scala/org/apache/gluten/component/CHIcebergComponent.scala
 
b/backends-clickhouse/src-iceberg/main/scala/org/apache/gluten/component/CHIcebergComponent.scala
similarity index 100%
rename from 
backends-clickhouse/src/main-iceberg/scala/org/apache/gluten/component/CHIcebergComponent.scala
rename to 
backends-clickhouse/src-iceberg/main/scala/org/apache/gluten/component/CHIcebergComponent.scala
diff --git 
a/backends-clickhouse/src/test-iceberg/scala/org/apache/gluten/execution/iceberg/ClickHouseIcebergSuite.scala
 
b/backends-clickhouse/src-iceberg/test/scala/org/apache/gluten/execution/iceberg/ClickHouseIcebergSuite.scala
similarity index 100%
rename from 
backends-clickhouse/src/test-iceberg/scala/org/apache/gluten/execution/iceberg/ClickHouseIcebergSuite.scala
rename to 
backends-clickhouse/src-iceberg/test/scala/org/apache/gluten/execution/iceberg/ClickHouseIcebergSuite.scala
diff --git a/backends-velox/pom.xml b/backends-velox/pom.xml
index 2719cc6559..48a044a17f 100755
--- a/backends-velox/pom.xml
+++ b/backends-velox/pom.xml
@@ -59,49 +59,7 @@
           <scope>test</scope>
         </dependency>
       </dependencies>
-      <build>
-        <resources>
-          <resource>
-            <directory>${project.basedir}/src/main-iceberg/resource</directory>
-          </resource>
-        </resources>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>add-iceberg-sources</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/main-iceberg/scala</source>
-                    <source>${project.basedir}/src/main-iceberg/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-              <execution>
-                <id>add-iceberg-test-sources</id>
-                <phase>generate-test-sources</phase>
-                <goals>
-                  <goal>add-test-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/test-iceberg/scala</source>
-                    <source>${project.basedir}/src/test-iceberg/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
     </profile>
-
     <profile>
       <id>delta</id>
       <dependencies>
@@ -123,42 +81,6 @@
           <scope>provided</scope>
         </dependency>
       </dependencies>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>add-delta-sources</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/main-delta/scala</source>
-                    <source>${project.basedir}/src/main-delta/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-              <execution>
-                <id>add-delta-test-sources</id>
-                <phase>generate-test-sources</phase>
-                <goals>
-                  <goal>add-test-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>${project.basedir}/src/test-delta/scala</source>
-                    <source>${project.basedir}/src/test-delta/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
     </profile>
   </profiles>
 
@@ -317,11 +239,11 @@
   <build>
     <resources>
       <resource>
-        <directory>${cpp.releases.dir}</directory>
-        <targetPath>${platform}/${arch}</targetPath>
+        <directory>${project.basedir}/src/main/resources</directory>
       </resource>
       <resource>
-        <directory>${project.basedir}/src/main/resources</directory>
+        <directory>${cpp.releases.dir}</directory>
+        <targetPath>${platform}/${arch}</targetPath>
       </resource>
     </resources>
     
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
diff --git 
a/backends-velox/src/test-delta/scala/org/apache/gluten/execution/VeloxDeltaSuite.scala
 
b/backends-velox/src-delta/test/scala/org/apache/gluten/execution/VeloxDeltaSuite.scala
similarity index 100%
rename from 
backends-velox/src/test-delta/scala/org/apache/gluten/execution/VeloxDeltaSuite.scala
rename to 
backends-velox/src-delta/test/scala/org/apache/gluten/execution/VeloxDeltaSuite.scala
diff --git 
a/backends-velox/src/test-delta/scala/org/apache/gluten/execution/VeloxTPCHDeltaSuite.scala
 
b/backends-velox/src-delta/test/scala/org/apache/gluten/execution/VeloxTPCHDeltaSuite.scala
similarity index 100%
rename from 
backends-velox/src/test-delta/scala/org/apache/gluten/execution/VeloxTPCHDeltaSuite.scala
rename to 
backends-velox/src-delta/test/scala/org/apache/gluten/execution/VeloxTPCHDeltaSuite.scala
diff --git 
a/backends-velox/src/main-iceberg/resource/META-INF/services/org.apache.gluten.component.Component
 
b/backends-velox/src-iceberg/main/resources/META-INF/services/org.apache.gluten.component.Component
similarity index 100%
rename from 
backends-velox/src/main-iceberg/resource/META-INF/services/org.apache.gluten.component.Component
rename to 
backends-velox/src-iceberg/main/resources/META-INF/services/org.apache.gluten.component.Component
diff --git 
a/backends-velox/src/main-iceberg/scala/org/apache/gluten/component/VeloxIcebergComponent.scala
 
b/backends-velox/src-iceberg/main/scala/org/apache/gluten/component/VeloxIcebergComponent.scala
similarity index 100%
rename from 
backends-velox/src/main-iceberg/scala/org/apache/gluten/component/VeloxIcebergComponent.scala
rename to 
backends-velox/src-iceberg/main/scala/org/apache/gluten/component/VeloxIcebergComponent.scala
diff --git 
a/backends-velox/src/test-iceberg/scala/org/apache/gluten/execution/VeloxIcebergSuite.scala
 
b/backends-velox/src-iceberg/test/scala/org/apache/gluten/execution/VeloxIcebergSuite.scala
similarity index 100%
rename from 
backends-velox/src/test-iceberg/scala/org/apache/gluten/execution/VeloxIcebergSuite.scala
rename to 
backends-velox/src-iceberg/test/scala/org/apache/gluten/execution/VeloxIcebergSuite.scala
diff --git 
a/backends-velox/src/test-iceberg/scala/org/apache/gluten/execution/VeloxTPCHIcebergSuite.scala
 
b/backends-velox/src-iceberg/test/scala/org/apache/gluten/execution/VeloxTPCHIcebergSuite.scala
similarity index 100%
rename from 
backends-velox/src/test-iceberg/scala/org/apache/gluten/execution/VeloxTPCHIcebergSuite.scala
rename to 
backends-velox/src-iceberg/test/scala/org/apache/gluten/execution/VeloxTPCHIcebergSuite.scala
diff --git a/gluten-core/src/main/scala/org/apache/gluten/GlutenPlugin.scala 
b/gluten-core/src/main/scala/org/apache/gluten/GlutenPlugin.scala
index 4b28f23dd9..4b27cc75bd 100644
--- a/gluten-core/src/main/scala/org/apache/gluten/GlutenPlugin.scala
+++ b/gluten-core/src/main/scala/org/apache/gluten/GlutenPlugin.scala
@@ -94,7 +94,7 @@ private[gluten] class GlutenDriverPlugin extends DriverPlugin 
with Logging {
     val glutenBuildInfo = new mutable.LinkedHashMap[String, String]()
 
     val components = Component.sorted()
-    glutenBuildInfo.put("Components", 
components.map(_.buildInfo().name).mkString(","))
+    glutenBuildInfo.put("Components", 
components.map(_.buildInfo().name).mkString(", "))
     components.foreach {
       comp =>
         val buildInfo = comp.buildInfo()
diff --git a/gluten-delta/pom.xml b/gluten-delta/pom.xml
index f971ec6070..cf2fdd7518 100755
--- a/gluten-delta/pom.xml
+++ b/gluten-delta/pom.xml
@@ -14,10 +14,6 @@
   <packaging>jar</packaging>
   <name>Gluten DeltaLake</name>
 
-  <properties>
-    <resource.dir>${project.basedir}/src/main/resources</resource.dir>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.gluten</groupId>
@@ -92,11 +88,6 @@
   <build>
     
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
     
<testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
-    <resources>
-      <resource>
-        <directory>${resource.dir}</directory>
-      </resource>
-    </resources>
     <plugins>
       <plugin>
         <groupId>net.alchim31.maven</groupId>
@@ -123,10 +114,10 @@
               <file>${project.basedir}/../.scalafmt.conf</file>
             </scalafmt>
             <includes>
-              <include>src/main/scala/**/*.scala</include>
-              <include>src/test/scala/**/*.scala</include>
-              
<include>src/main/delta-${delta.binary.version}/**/*.scala</include>
-              
<include>src/test/delta-${delta.binary.version}/**/*.scala</include>
+              <include>src-delta/main/scala/**/*.scala</include>
+              <include>src-delta/test/scala/**/*.scala</include>
+              
<include>src-delta-${delta.binary.version}/main/scala/**/*.scala</include>
+              
<include>src-delta-${delta.binary.version}/test/scala/**/*.scala</include>
             </includes>
           </scala>
         </configuration>
@@ -151,28 +142,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy-resources</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              
<outputDirectory>src/main/scala/org/apache/gluten/execution</outputDirectory>
-              <resources>
-                <resource>
-                  
<directory>src/main/delta-${delta.binary.version}/org/apache/gluten/execution</directory>
-                </resource>
-              </resources>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
     </plugins>
   </build>
 </project>
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
 
b/gluten-delta/src-delta-20/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
similarity index 100%
copy from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
copy to 
gluten-delta/src-delta-20/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
 
b/gluten-delta/src-delta-20/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
similarity index 100%
copy from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
copy to 
gluten-delta/src-delta-20/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
 
b/gluten-delta/src-delta-23/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
similarity index 100%
copy from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
copy to 
gluten-delta/src-delta-23/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
 
b/gluten-delta/src-delta-23/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
similarity index 100%
copy from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
copy to 
gluten-delta/src-delta-23/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
 
b/gluten-delta/src-delta-24/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
similarity index 100%
rename from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
rename to 
gluten-delta/src-delta-24/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
 
b/gluten-delta/src-delta-24/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
similarity index 100%
rename from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
rename to 
gluten-delta/src-delta-24/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
diff --git 
a/gluten-delta/src/main/delta-32/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
 
b/gluten-delta/src-delta-32/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
similarity index 100%
rename from 
gluten-delta/src/main/delta-32/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
rename to 
gluten-delta/src-delta-32/main/scala/org/apache/gluten/execution/DeltaFilterExecTransformer.scala
diff --git 
a/gluten-delta/src/main/delta-32/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
 
b/gluten-delta/src-delta-32/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
similarity index 100%
rename from 
gluten-delta/src/main/delta-32/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
rename to 
gluten-delta/src-delta-32/main/scala/org/apache/gluten/execution/DeltaProjectExecTransformer.scala
diff --git 
a/gluten-delta/src/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
 
b/gluten-delta/src-delta/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
similarity index 100%
rename from 
gluten-delta/src/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
rename to 
gluten-delta/src-delta/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
diff --git 
a/gluten-delta/src/main/resources/META-INF/services/org.apache.gluten.extension.columnar.RewriteTransformerRules
 
b/gluten-delta/src-delta/main/resources/META-INF/services/org.apache.gluten.extension.columnar.RewriteTransformerRules
similarity index 100%
rename from 
gluten-delta/src/main/resources/META-INF/services/org.apache.gluten.extension.columnar.RewriteTransformerRules
rename to 
gluten-delta/src-delta/main/resources/META-INF/services/org.apache.gluten.extension.columnar.RewriteTransformerRules
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaScanTransformer.scala
 
b/gluten-delta/src-delta/main/scala/org/apache/gluten/execution/DeltaScanTransformer.scala
similarity index 100%
rename from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaScanTransformer.scala
rename to 
gluten-delta/src-delta/main/scala/org/apache/gluten/execution/DeltaScanTransformer.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaScanTransformerProvider.scala
 
b/gluten-delta/src-delta/main/scala/org/apache/gluten/execution/DeltaScanTransformerProvider.scala
similarity index 100%
rename from 
gluten-delta/src/main/scala/org/apache/gluten/execution/DeltaScanTransformerProvider.scala
rename to 
gluten-delta/src-delta/main/scala/org/apache/gluten/execution/DeltaScanTransformerProvider.scala
diff --git 
a/gluten-delta/src/main/scala/org/apache/gluten/extension/DeltaRewriteTransformerRules.scala
 
b/gluten-delta/src-delta/main/scala/org/apache/gluten/extension/DeltaRewriteTransformerRules.scala
similarity index 100%
rename from 
gluten-delta/src/main/scala/org/apache/gluten/extension/DeltaRewriteTransformerRules.scala
rename to 
gluten-delta/src-delta/main/scala/org/apache/gluten/extension/DeltaRewriteTransformerRules.scala
diff --git 
a/gluten-delta/src/test/scala/org/apache/gluten/execution/DeltaSuite.scala 
b/gluten-delta/src-delta/test/scala/org/apache/gluten/execution/DeltaSuite.scala
similarity index 99%
rename from 
gluten-delta/src/test/scala/org/apache/gluten/execution/DeltaSuite.scala
rename to 
gluten-delta/src-delta/test/scala/org/apache/gluten/execution/DeltaSuite.scala
index caf86189a2..df788bec99 100644
--- a/gluten-delta/src/test/scala/org/apache/gluten/execution/DeltaSuite.scala
+++ 
b/gluten-delta/src-delta/test/scala/org/apache/gluten/execution/DeltaSuite.scala
@@ -18,7 +18,7 @@ package org.apache.gluten.execution
 
 import org.apache.spark.SparkConf
 import org.apache.spark.sql.Row
-import org.apache.spark.sql.types.{ArrayType, IntegerType, MapType, 
StringType, StructType}
+import org.apache.spark.sql.types._
 
 import scala.collection.JavaConverters._
 
diff --git a/gluten-hudi/pom.xml b/gluten-hudi/pom.xml
index b65217ea5b..7900182f85 100755
--- a/gluten-hudi/pom.xml
+++ b/gluten-hudi/pom.xml
@@ -14,10 +14,6 @@
   <packaging>jar</packaging>
   <name>Gluten Hudi</name>
 
-  <properties>
-    <resource.dir>${project.basedir}/src/main/resources</resource.dir>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.gluten</groupId>
@@ -107,11 +103,6 @@
   <build>
     
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
     
<testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
-    <resources>
-      <resource>
-        <directory>${resource.dir}</directory>
-      </resource>
-    </resources>
     <plugins>
       <plugin>
         <groupId>net.alchim31.maven</groupId>
diff --git 
a/gluten-hudi/src/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
 
b/gluten-hudi/src-hudi/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
similarity index 100%
rename from 
gluten-hudi/src/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
rename to 
gluten-hudi/src-hudi/main/resources/META-INF/services/org.apache.gluten.execution.DataSourceScanTransformerRegister
diff --git 
a/gluten-hudi/src/main/scala/org/apache/gluten/execution/HudiScanTransformer.scala
 
b/gluten-hudi/src-hudi/main/scala/org/apache/gluten/execution/HudiScanTransformer.scala
similarity index 100%
rename from 
gluten-hudi/src/main/scala/org/apache/gluten/execution/HudiScanTransformer.scala
rename to 
gluten-hudi/src-hudi/main/scala/org/apache/gluten/execution/HudiScanTransformer.scala
diff --git 
a/gluten-hudi/src/main/scala/org/apache/gluten/execution/HudiScanTransformerProvider.scala
 
b/gluten-hudi/src-hudi/main/scala/org/apache/gluten/execution/HudiScanTransformerProvider.scala
similarity index 100%
rename from 
gluten-hudi/src/main/scala/org/apache/gluten/execution/HudiScanTransformerProvider.scala
rename to 
gluten-hudi/src-hudi/main/scala/org/apache/gluten/execution/HudiScanTransformerProvider.scala
diff --git 
a/gluten-hudi/src/test/scala/org/apache/gluten/execution/VeloxHudiSuite.scala 
b/gluten-hudi/src-hudi/test/scala/org/apache/gluten/execution/VeloxHudiSuite.scala
similarity index 100%
rename from 
gluten-hudi/src/test/scala/org/apache/gluten/execution/VeloxHudiSuite.scala
rename to 
gluten-hudi/src-hudi/test/scala/org/apache/gluten/execution/VeloxHudiSuite.scala
diff --git 
a/gluten-hudi/src/test/scala/org/apache/gluten/execution/VeloxTPCHHudiSuite.scala
 
b/gluten-hudi/src-hudi/test/scala/org/apache/gluten/execution/VeloxTPCHHudiSuite.scala
similarity index 100%
rename from 
gluten-hudi/src/test/scala/org/apache/gluten/execution/VeloxTPCHHudiSuite.scala
rename to 
gluten-hudi/src-hudi/test/scala/org/apache/gluten/execution/VeloxTPCHHudiSuite.scala
diff --git a/gluten-iceberg/pom.xml b/gluten-iceberg/pom.xml
index bad2ec20e8..c8c811674a 100644
--- a/gluten-iceberg/pom.xml
+++ b/gluten-iceberg/pom.xml
@@ -14,10 +14,6 @@
     <packaging>jar</packaging>
     <name>Gluten Iceberg</name>
 
-    <properties>
-        <resource.dir>${project.basedir}/src/main/resources</resource.dir>
-    </properties>
-
     <dependencies>
         <dependency>
             <groupId>org.apache.gluten</groupId>
@@ -99,11 +95,6 @@
     <build>
         
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
         
<testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
-        <resources>
-            <resource>
-                <directory>${resource.dir}</directory>
-            </resource>
-        </resources>
         <plugins>
             <plugin>
                 <groupId>net.alchim31.maven</groupId>
diff --git 
a/gluten-iceberg/src/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesBuilder.java
 
b/gluten-iceberg/src-iceberg/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesBuilder.java
similarity index 100%
rename from 
gluten-iceberg/src/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesBuilder.java
rename to 
gluten-iceberg/src-iceberg/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesBuilder.java
diff --git 
a/gluten-iceberg/src/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesNode.java
 
b/gluten-iceberg/src-iceberg/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesNode.java
similarity index 100%
rename from 
gluten-iceberg/src/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesNode.java
rename to 
gluten-iceberg/src-iceberg/main/java/org/apache/gluten/substrait/rel/IcebergLocalFilesNode.java
diff --git 
a/gluten-iceberg/src/main/scala/org/apache/gluten/execution/IcebergScanTransformer.scala
 
b/gluten-iceberg/src-iceberg/main/scala/org/apache/gluten/execution/IcebergScanTransformer.scala
similarity index 100%
rename from 
gluten-iceberg/src/main/scala/org/apache/gluten/execution/IcebergScanTransformer.scala
rename to 
gluten-iceberg/src-iceberg/main/scala/org/apache/gluten/execution/IcebergScanTransformer.scala
diff --git 
a/gluten-iceberg/src/main/scala/org/apache/gluten/execution/OffloadIcebergScan.scala
 
b/gluten-iceberg/src-iceberg/main/scala/org/apache/gluten/execution/OffloadIcebergScan.scala
similarity index 100%
rename from 
gluten-iceberg/src/main/scala/org/apache/gluten/execution/OffloadIcebergScan.scala
rename to 
gluten-iceberg/src-iceberg/main/scala/org/apache/gluten/execution/OffloadIcebergScan.scala
diff --git 
a/gluten-iceberg/src/main/scala/org/apache/iceberg/spark/source/GlutenIcebergSourceUtil.scala
 
b/gluten-iceberg/src-iceberg/main/scala/org/apache/iceberg/spark/source/GlutenIcebergSourceUtil.scala
similarity index 100%
rename from 
gluten-iceberg/src/main/scala/org/apache/iceberg/spark/source/GlutenIcebergSourceUtil.scala
rename to 
gluten-iceberg/src-iceberg/main/scala/org/apache/iceberg/spark/source/GlutenIcebergSourceUtil.scala
diff --git 
a/gluten-iceberg/src/main/scala/org/apache/iceberg/spark/source/TypeUtil.scala 
b/gluten-iceberg/src-iceberg/main/scala/org/apache/iceberg/spark/source/TypeUtil.scala
similarity index 100%
rename from 
gluten-iceberg/src/main/scala/org/apache/iceberg/spark/source/TypeUtil.scala
rename to 
gluten-iceberg/src-iceberg/main/scala/org/apache/iceberg/spark/source/TypeUtil.scala
diff --git 
a/gluten-iceberg/src/test/scala/org/apache/gluten/execution/IcebergSuite.scala 
b/gluten-iceberg/src-iceberg/test/scala/org/apache/gluten/execution/IcebergSuite.scala
similarity index 100%
rename from 
gluten-iceberg/src/test/scala/org/apache/gluten/execution/IcebergSuite.scala
rename to 
gluten-iceberg/src-iceberg/test/scala/org/apache/gluten/execution/IcebergSuite.scala
diff --git a/gluten-substrait/pom.xml b/gluten-substrait/pom.xml
index e8eb6a57e6..8a790aa153 100644
--- a/gluten-substrait/pom.xml
+++ b/gluten-substrait/pom.xml
@@ -181,13 +181,6 @@
   <build>
     
<outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
     
<testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
-    <resources>
-      <resource>
-        <filtering>true</filtering>
-        <!-- Include the properties file to provide the build information. -->
-        <directory>${project.build.directory}/extra-resources</directory>
-      </resource>
-    </resources>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -205,7 +198,7 @@
                   <arg value="${project.basedir}/../dev/gluten-build-info.sh"/>
                   <arg value="${backend.type}"/>
                   <arg value="${backend.home}"/>
-                  <arg value="${project.build.directory}/extra-resources"/>
+                  <arg value="${project.build.directory}/generated-resources"/>
                   <arg value="${project.version}"/>
                   <arg value="${java.version}"/>
                   <arg value="${scala.version}"/>
diff --git a/package/pom.xml b/package/pom.xml
index f4cc8d6f70..e0620e5cf5 100644
--- a/package/pom.xml
+++ b/package/pom.xml
@@ -253,7 +253,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>3.3.0</version>
         <dependencies>
           <dependency>
             <groupId>org.codehaus.mojo</groupId>
diff --git a/pom.xml b/pom.xml
index 9b27a68397..3c59b4f19e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
     </spotless.license.header>
 
     <!-- plugin version-->
-    
<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
+    
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
     <scala.compiler.version>4.8.0</scala.compiler.version>
     <maven.compiler.plugin>3.12.1</maven.compiler.plugin>
     <maven.jar.plugin>3.2.2</maven.jar.plugin>
@@ -314,7 +314,7 @@
         <delta.version>2.3.0</delta.version>
         <delta.binary.version>23</delta.binary.version>
         <antlr4.version>4.8</antlr4.version>
-       <hudi.version>0.15.0</hudi.version>
+        <hudi.version>0.15.0</hudi.version>
       </properties>
     </profile>
     <profile>
@@ -440,6 +440,82 @@
       <modules>
         <module>gluten-delta</module>
       </modules>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>add-delta-sources</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>add-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-delta/main/scala</source>
+                    <source>${project.basedir}/src-delta/main/java</source>
+                    
<source>${project.basedir}/src-delta-${delta.binary.version}/main/scala</source>
+                    
<source>${project.basedir}/src-delta-${delta.binary.version}/main/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-delta-resources</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>add-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <!--Don't place multiple `directory` lines under the same 
`resource` entry.-->
+                    <!--IDEA recognizes this kind of usage while Maven 
doesn't.-->
+                    <resource>
+                      
<directory>${project.basedir}/src-delta/main/resources</directory>
+                    </resource>
+                    <resource>
+                      
<directory>${project.basedir}/src-delta-${delta.binary.version}/main/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-delta-test-sources</id>
+                <phase>generate-test-sources</phase>
+                <goals>
+                  <goal>add-test-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-delta/test/scala</source>
+                    <source>${project.basedir}/src-delta/test/java</source>
+                    
<source>${project.basedir}/src-delta-${delta.binary.version}/test/scala</source>
+                    
<source>${project.basedir}/src-delta-${delta.binary.version}/test/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-delta-test-resources</id>
+                <phase>generate-test-resources</phase>
+                <goals>
+                  <goal>add-test-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <resource>
+                      
<directory>${project.basedir}/src-delta/test/resources</directory>
+                    </resource>
+                    <resource>
+                      
<directory>${project.basedir}/src-delta-${delta.binary.version}/test/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
     <profile>
       <id>iceberg</id>
@@ -449,6 +525,70 @@
       <modules>
         <module>gluten-iceberg</module>
       </modules>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>add-iceberg-sources</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>add-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-iceberg/main/scala</source>
+                    <source>${project.basedir}/src-iceberg/main/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-iceberg-resources</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>add-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <resource>
+                      
<directory>${project.basedir}/src-iceberg/main/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-iceberg-test-sources</id>
+                <phase>generate-test-sources</phase>
+                <goals>
+                  <goal>add-test-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-iceberg/test/scala</source>
+                    <source>${project.basedir}/src-iceberg/test/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-iceberg-test-resources</id>
+                <phase>generate-test-resources</phase>
+                <goals>
+                  <goal>add-test-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <resource>
+                      
<directory>${project.basedir}/src-iceberg/test/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
     <profile>
       <id>hudi</id>
@@ -458,6 +598,70 @@
       <modules>
         <module>gluten-hudi</module>
       </modules>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>add-hudi-sources</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>add-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-hudi/main/scala</source>
+                    <source>${project.basedir}/src-hudi/main/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-hudi-resources</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>add-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <resource>
+                      
<directory>${project.basedir}/src-hudi/main/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-hudi-test-sources</id>
+                <phase>generate-test-sources</phase>
+                <goals>
+                  <goal>add-test-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>${project.basedir}/src-hudi/test/scala</source>
+                    <source>${project.basedir}/src-hudi/test/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+              <execution>
+                <id>add-hudi-test-resources</id>
+                <phase>generate-test-resources</phase>
+                <goals>
+                  <goal>add-test-resource</goal>
+                </goals>
+                <configuration>
+                  <resources>
+                    <resource>
+                      
<directory>${project.basedir}/src-hudi/test/resources</directory>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
     <profile>
       <id>backends-velox</id>
@@ -877,6 +1081,16 @@
   </dependencyManagement>
 
   <build>
+    <resources>
+      <resource>
+        <directory>${project.basedir}/src/main/resources</directory>
+      </resource>
+    </resources>
+    <testResources>
+      <testResource>
+        <directory>${project.basedir}/src/test/resources</directory>
+      </testResource>
+    </testResources>
     <extensions>
       <!-- provides os.detected.classifier (i.e. linux-x86_64, osx-x86_64) 
property -->
       <extension>
@@ -1133,13 +1347,17 @@
           <artifactId>antlr4-maven-plugin</artifactId>
           <version>${antlr4.version}</version>
         </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-enforcer-plugin</artifactId>
+          <version>3.3.0</version>
+        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>1.0.1</version>
         <executions>
           <execution>
             <id>enforce-versions</id>
@@ -1175,6 +1393,34 @@
         <artifactId>versions-maven-plugin</artifactId>
         <version>2.15.0</version>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <!--We use build-helper-maven-plugin rather than 
maven-resources-plugin-->
+        <!--to add base resources (generated-resources and other common 
extended resource folders).-->
+        <!--So submodules could easily add their own resources through 
maven-resources-plugin-->
+        <!--which is more compatible with Intellij IDEA (E.g., `targetPath` 
can be respected by-->
+        <!--IDEA with maven-resources-plugin while it is not working with 
build-helper-maven-plugin).-->
+        <executions>
+          <execution>
+          </execution>
+          <execution>
+            <id>add-generated-resources</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>add-resource</goal>
+            </goals>
+            <configuration>
+              <resources>
+                <resource>
+                  <!-- Include the properties file to provide the build 
information. -->
+                  
<directory>${project.build.directory}/generated-resources</directory>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to