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

yuqi4733 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 982d6add79 [#10195] improvement(catalogs):Change some dependencies to 
`compileOnly` in catalog modules (#10199)
982d6add79 is described below

commit 982d6add797efdc684d674616f2846d06b931f21
Author: Qi Yu <[email protected]>
AuthorDate: Fri Mar 6 19:57:57 2026 +0800

    [#10195] improvement(catalogs):Change some dependencies to `compileOnly` in 
catalog modules (#10199)
    
    ### What changes were proposed in this pull request?
    
    This pull request refactors dependency configurations across several
    catalog modules to reduce unnecessary runtime dependencies. The main
    change is switching from `implementation` to `compileOnly` for `:api`,
    `:common`, and `:core` dependencies, ensuring these are only available
    at compile time and not included in the final runtime artifact. To
    maintain test coverage, these dependencies are now explicitly added to
    the `testImplementation` scope. This helps minimize the transitive
    dependencies included at runtime, leading to lighter builds and fewer
    potential conflicts.
    
    ### Why are the changes needed?
    
    To shrink the release package size.
    
    Fix: #10195
    Fix: #10250
    
    ### Does this PR introduce _any_ user-facing change?
    
    N/A
    
    ### How was this patch tested?
    
    Test locally can CI.
    
    ---------
    
    Co-authored-by: Copilot <[email protected]>
---
 .../workflows/backend-integration-test-action.yml  |  2 +-
 .github/workflows/frontend-integration-test.yml    |  2 +-
 .../catalog-jdbc-clickhouse/build.gradle.kts       | 16 ++--
 .../catalog-jdbc-hologres/build.gradle.kts         | 16 ++--
 .../catalog-jdbc-oceanbase/build.gradle.kts        | 16 ++--
 .../integration/test/CatalogOceanBaseIT.java       |  2 +-
 catalogs/catalog-common/build.gradle.kts           |  6 +-
 catalogs/catalog-fileset/build.gradle.kts          | 32 ++++----
 catalogs/catalog-hive/build.gradle.kts             | 70 ++++++++---------
 catalogs/catalog-jdbc-common/build.gradle.kts      | 17 +++--
 catalogs/catalog-jdbc-doris/build.gradle.kts       | 16 ++--
 catalogs/catalog-jdbc-mysql/build.gradle.kts       | 16 ++--
 catalogs/catalog-jdbc-postgresql/build.gradle.kts  | 15 ++--
 catalogs/catalog-jdbc-starrocks/build.gradle.kts   | 16 ++--
 catalogs/catalog-kafka/build.gradle.kts            | 25 +++---
 .../catalog-lakehouse-generic/build.gradle.kts     | 22 +++---
 catalogs/catalog-lakehouse-hudi/build.gradle.kts   | 82 ++++++++++----------
 .../catalog-lakehouse-iceberg/build.gradle.kts     | 36 ++++-----
 catalogs/catalog-lakehouse-paimon/build.gradle.kts | 41 +++++-----
 catalogs/catalog-model/build.gradle.kts            | 21 +++---
 catalogs/hadoop-common/build.gradle.kts            | 11 ++-
 catalogs/hive-metastore-common/build.gradle.kts    | 88 +++++++++++-----------
 catalogs/hive-metastore2-libs/build.gradle.kts     |  2 +-
 catalogs/hive-metastore3-libs/build.gradle.kts     |  2 +-
 docs/jdbc-clickhouse-catalog.md                    | 16 ++--
 25 files changed, 283 insertions(+), 305 deletions(-)

diff --git a/.github/workflows/backend-integration-test-action.yml 
b/.github/workflows/backend-integration-test-action.yml
index 08d054520f..5463683575 100644
--- a/.github/workflows/backend-integration-test-action.yml
+++ b/.github/workflows/backend-integration-test-action.yml
@@ -52,7 +52,7 @@ jobs:
       - name: Package Gravitino
         if: ${{ inputs.test-mode == 'deploy' }}
         run: |
-          ./gradlew compileDistribution -x test -x web-v2:web:build 
+          ./gradlew compileDistribution -x test -x web-v2:web:build
 
       - name: Free up disk space
         run: |
diff --git a/.github/workflows/frontend-integration-test.yml 
b/.github/workflows/frontend-integration-test.yml
index e6bd894fa8..f01041c5b1 100644
--- a/.github/workflows/frontend-integration-test.yml
+++ b/.github/workflows/frontend-integration-test.yml
@@ -37,7 +37,7 @@ jobs:
               - iceberg/**
               - lance/**
               - scripts/**
-              - server/** 
+              - server/**
               - meta/**
               - server-common/**
               - integration-test-common/**
diff --git a/catalogs-contrib/catalog-jdbc-clickhouse/build.gradle.kts 
b/catalogs-contrib/catalog-jdbc-clickhouse/build.gradle.kts
index 8f519f8ccf..8f1ddb8796 100644
--- a/catalogs-contrib/catalog-jdbc-clickhouse/build.gradle.kts
+++ b/catalogs-contrib/catalog-jdbc-clickhouse/build.gradle.kts
@@ -25,26 +25,24 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs-contrib/catalog-jdbc-hologres/build.gradle.kts 
b/catalogs-contrib/catalog-jdbc-hologres/build.gradle.kts
index 132c89a691..7c2d6f6c60 100644
--- a/catalogs-contrib/catalog-jdbc-hologres/build.gradle.kts
+++ b/catalogs-contrib/catalog-jdbc-hologres/build.gradle.kts
@@ -25,29 +25,27 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts 
b/catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts
index ca6d8aa003..41640afc7d 100644
--- a/catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts
+++ b/catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts
@@ -25,21 +25,16 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
@@ -47,6 +42,9 @@ dependencies {
   implementation(libs.guava)
 
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
+  testImplementation(project(":api"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":clients:client-java"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
diff --git 
a/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
index 260d851ac7..c7adcbfb8d 100644
--- 
a/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
+++ 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
@@ -304,7 +304,7 @@ public class CatalogOceanBaseIT extends BaseIT {
     // create failed check.
     NameIdentifier table = NameIdentifier.of(testSchemaName, "test_table");
     Assertions.assertThrows(
-        NoSuchSchemaException.class,
+        NotFoundException.class,
         () ->
             tableCatalog.createTable(
                 table,
diff --git a/catalogs/catalog-common/build.gradle.kts 
b/catalogs/catalog-common/build.gradle.kts
index 6bbac8e068..41a7a5f030 100644
--- a/catalogs/catalog-common/build.gradle.kts
+++ b/catalogs/catalog-common/build.gradle.kts
@@ -23,15 +23,15 @@ plugins {
 
 // try to avoid adding extra dependencies because it is used by catalogs and 
connectors.
 dependencies {
-  implementation(project(":common")) {
-    exclude("*")
-  }
+  compileOnly(project(":common"))
 
   implementation(libs.commons.lang3)
   implementation(libs.guava)
   implementation(libs.jakarta.validation.api)
   implementation(libs.slf4j.api)
 
+  testImplementation(project(":common"))
+
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.junit.jupiter.params)
 
diff --git a/catalogs/catalog-fileset/build.gradle.kts 
b/catalogs/catalog-fileset/build.gradle.kts
index 979bed1cf6..8b4b4305d6 100644
--- a/catalogs/catalog-fileset/build.gradle.kts
+++ b/catalogs/catalog-fileset/build.gradle.kts
@@ -25,42 +25,42 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.guava)
+
   implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
   implementation(project(":catalogs:hadoop-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
+
   implementation(libs.awaitility)
   implementation(libs.caffeine)
   implementation(libs.cglib)
-  implementation(libs.commons.lang3)
   implementation(libs.commons.io)
+  implementation(libs.commons.lang3)
   implementation(libs.hadoop3.client.api)
   implementation(libs.hadoop3.client.runtime)
-  implementation(libs.slf4j.api)
   implementation(libs.metrics.caffeine)
   implementation(libs.metrics.core)
+  implementation(libs.slf4j.api)
 
-  compileOnly(libs.guava)
-
-  testImplementation(project(":clients:client-java"))
-  testImplementation(project(":bundles:aws-bundle", configuration = "shadow"))
-  testImplementation(project(":bundles:gcp-bundle", configuration = "shadow"))
+  testImplementation(project(":api"))
   testImplementation(project(":bundles:aliyun-bundle", configuration = 
"shadow"))
+  testImplementation(project(":bundles:aws-bundle", configuration = "shadow"))
   testImplementation(project(":bundles:azure-bundle", configuration = 
"shadow"))
+  testImplementation(project(":bundles:gcp-bundle", configuration = "shadow"))
+  testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
+
   testImplementation(libs.bundles.log4j)
   testImplementation(libs.hadoop3.gcs)
   testImplementation(libs.hadoop3.minicluster)
diff --git a/catalogs/catalog-hive/build.gradle.kts 
b/catalogs/catalog-hive/build.gradle.kts
index b63efeb09b..e7cdae04b8 100644
--- a/catalogs/catalog-hive/build.gradle.kts
+++ b/catalogs/catalog-hive/build.gradle.kts
@@ -30,25 +30,22 @@ val icebergVersion: String = libs.versions.iceberg.get()
 val scalaCollectionCompatVersion: String = 
libs.versions.scala.collection.compat.get()
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.immutables.value)
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common")) {
     exclude("*")
   }
-  implementation(project(":common")) {
-    exclude("*")
-  }
   implementation(project(":catalogs:hive-metastore-common"))
-  implementation(project(":core")) {
-    exclude("*")
-  }
 
   implementation(libs.commons.collections3)
-  implementation(libs.commons.lang3)
   implementation(libs.commons.configuration1)
-  implementation(libs.htrace.core4)
   implementation(libs.commons.io)
+  implementation(libs.commons.lang3)
   implementation(libs.guava)
   implementation(libs.hadoop2.auth) {
     exclude("*")
@@ -56,29 +53,41 @@ dependencies {
   implementation(libs.hadoop2.common) {
     exclude("*")
   }
-  implementation(libs.woodstox.core)
+  implementation(libs.htrace.core4)
   implementation(libs.slf4j.api)
-
-  compileOnly(libs.immutables.value)
-  compileOnly(libs.lombok)
+  implementation(libs.woodstox.core)
 
   annotationProcessor(libs.immutables.value)
   annotationProcessor(libs.lombok)
 
-  testImplementation(libs.awaitility)
+  testImplementation(project(":api"))
+  testImplementation(project(":catalogs:hadoop-common")) {
+    exclude("*")
+  }
   testImplementation(project(":catalogs:hive-metastore-common", 
"testArtifacts"))
-  testImplementation(project(":common"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
-  testImplementation(project(":catalogs:hadoop-common")) {
-    exclude("*")
-  }
 
-  testImplementation(libs.bundles.jetty)
+  
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$sparkVersion") {
+    exclude("org.apache.hadoop")
+  }
+  testImplementation("org.apache.spark:spark-sql_$scalaVersion:$sparkVersion") 
{
+    exclude("org.apache.avro")
+    exclude("org.apache.hadoop")
+    exclude("org.apache.zookeeper")
+    exclude("io.dropwizard.metrics")
+    exclude("org.rocksdb")
+  }
+  
testImplementation("org.scala-lang.modules:scala-collection-compat_$scalaVersion:$scalaCollectionCompatVersion")
+  testImplementation(libs.awaitility)
   testImplementation(libs.bundles.jersey)
+  testImplementation(libs.bundles.jetty)
   testImplementation(libs.bundles.log4j)
+  testImplementation(libs.hadoop2.aws)
   testImplementation(libs.hadoop2.common) {
     exclude("*")
   }
@@ -86,6 +95,8 @@ dependencies {
   testImplementation(libs.hadoop2.mapreduce.client.core) {
     exclude("*")
   }
+  testImplementation(libs.hadoop3.abs)
+  testImplementation(libs.hadoop3.gcs)
   testImplementation(libs.hive2.common) {
     exclude("org.eclipse.jetty.aggregate", "jetty-all")
     exclude("org.eclipse.jetty.orbit", "javax.servlet")
@@ -94,25 +105,10 @@ dependencies {
   testImplementation(libs.mockito.core)
   testImplementation(libs.mysql.driver)
   testImplementation(libs.postgresql.driver)
-
-  
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$sparkVersion") {
-    exclude("org.apache.hadoop")
-  }
-  
testImplementation("org.scala-lang.modules:scala-collection-compat_$scalaVersion:$scalaCollectionCompatVersion")
-  testImplementation("org.apache.spark:spark-sql_$scalaVersion:$sparkVersion") 
{
-    exclude("org.apache.avro")
-    exclude("org.apache.hadoop")
-    exclude("org.apache.zookeeper")
-    exclude("io.dropwizard.metrics")
-    exclude("org.rocksdb")
-  }
   testImplementation(libs.slf4j.api)
   testImplementation(libs.testcontainers)
-  testImplementation(libs.testcontainers.mysql)
   testImplementation(libs.testcontainers.localstack)
-  testImplementation(libs.hadoop2.aws)
-  testImplementation(libs.hadoop3.abs)
-  testImplementation(libs.hadoop3.gcs)
+  testImplementation(libs.testcontainers.mysql)
 
   // You need this to run test CatalogHiveABSIT as it required hadoop3 
environment introduced by hadoop3.abs
   // (The protocol `abfss` was first introduced in Hadoop 3.2.0), However, as 
the there already exists
diff --git a/catalogs/catalog-jdbc-common/build.gradle.kts 
b/catalogs/catalog-jdbc-common/build.gradle.kts
index 4f845bad77..ce772b8afb 100644
--- a/catalogs/catalog-jdbc-common/build.gradle.kts
+++ b/catalogs/catalog-jdbc-common/build.gradle.kts
@@ -38,10 +38,13 @@ artifacts {
 }
 
 dependencies {
-  implementation(project(":api"))
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common"))
-  implementation(project(":common"))
-  implementation(project(":core"))
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
@@ -53,6 +56,12 @@ dependencies {
   implementation(libs.jackson.datatype.jdk8)
   implementation(libs.jackson.datatype.jsr310)
 
+  annotationProcessor(libs.lombok)
+
+  testImplementation(project(":api"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
+
   testImplementation(libs.commons.io)
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.junit.jupiter.params)
@@ -62,6 +71,4 @@ dependencies {
   testImplementation(libs.testcontainers.postgresql)
 
   testRuntimeOnly(libs.junit.jupiter.engine)
-  compileOnly(libs.lombok)
-  annotationProcessor(libs.lombok)
 }
diff --git a/catalogs/catalog-jdbc-doris/build.gradle.kts 
b/catalogs/catalog-jdbc-doris/build.gradle.kts
index 84f81c81be..9f0cf2f3ee 100644
--- a/catalogs/catalog-jdbc-doris/build.gradle.kts
+++ b/catalogs/catalog-jdbc-doris/build.gradle.kts
@@ -25,26 +25,24 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs/catalog-jdbc-mysql/build.gradle.kts 
b/catalogs/catalog-jdbc-mysql/build.gradle.kts
index 5cc8d4f2b7..3b4c990abb 100644
--- a/catalogs/catalog-jdbc-mysql/build.gradle.kts
+++ b/catalogs/catalog-jdbc-mysql/build.gradle.kts
@@ -25,29 +25,27 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs/catalog-jdbc-postgresql/build.gradle.kts 
b/catalogs/catalog-jdbc-postgresql/build.gradle.kts
index b05a3279d2..4d48218762 100644
--- a/catalogs/catalog-jdbc-postgresql/build.gradle.kts
+++ b/catalogs/catalog-jdbc-postgresql/build.gradle.kts
@@ -25,27 +25,24 @@ plugins {
 }
 
 dependencies {
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
 
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs/catalog-jdbc-starrocks/build.gradle.kts 
b/catalogs/catalog-jdbc-starrocks/build.gradle.kts
index 02e90d8292..8ec780d984 100644
--- a/catalogs/catalog-jdbc-starrocks/build.gradle.kts
+++ b/catalogs/catalog-jdbc-starrocks/build.gradle.kts
@@ -25,26 +25,24 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
   implementation(project(":catalogs:catalog-jdbc-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
 
   implementation(libs.bundles.log4j)
   implementation(libs.commons.collections4)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs/catalog-kafka/build.gradle.kts 
b/catalogs/catalog-kafka/build.gradle.kts
index aaee3650a7..d750dbd4a5 100644
--- a/catalogs/catalog-kafka/build.gradle.kts
+++ b/catalogs/catalog-kafka/build.gradle.kts
@@ -25,29 +25,26 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
-  implementation(project(":core")) {
-    exclude("*")
-  }
-  implementation(project(":common")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  implementation(libs.guava)
+  implementation(libs.kafka.clients)
+  implementation(libs.slf4j.api)
 
+  testImplementation(project(":api"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
 
-  implementation(libs.guava)
-  implementation(libs.kafka.clients)
-  implementation(libs.slf4j.api)
-
   testImplementation(libs.awaitility)
   testImplementation(libs.commons.io)
-  testImplementation(libs.curator.test)
   testImplementation(libs.commons.lang3)
+  testImplementation(libs.curator.test)
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.kafka)
   testImplementation(libs.mockito.core)
diff --git a/catalogs/catalog-lakehouse-generic/build.gradle.kts 
b/catalogs/catalog-lakehouse-generic/build.gradle.kts
index e2e686f1cb..da81a437a6 100644
--- a/catalogs/catalog-lakehouse-generic/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-generic/build.gradle.kts
@@ -25,16 +25,14 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.lance) // This will be provided by core module at runtime
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common"))
-  implementation(project(":common")) {
-    exclude("*")
-  }
-  implementation(project(":core")) {
-    exclude("*")
-  }
   implementation(project(":lance:lance-common")) {
     exclude("*")
   }
@@ -45,10 +43,10 @@ dependencies {
 
   annotationProcessor(libs.lombok)
 
-  compileOnly(libs.lance) // This will be provided by core module at runtime
-  compileOnly(libs.lombok)
-
+  testImplementation(project(":api"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
diff --git a/catalogs/catalog-lakehouse-hudi/build.gradle.kts 
b/catalogs/catalog-lakehouse-hudi/build.gradle.kts
index 1c2e2e6017..1076204580 100644
--- a/catalogs/catalog-lakehouse-hudi/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-hudi/build.gradle.kts
@@ -30,43 +30,41 @@ val sparkVersion = 
fullSparkVersion.split(".").take(2).joinToString(".")
 val hudiVersion = libs.versions.hudi.get()
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common")) {
     exclude("*")
   }
   implementation(project(":catalogs:hive-metastore-common"))
-  implementation(project(":core")) {
-    exclude("*")
-  }
-  implementation(project(":common")) {
-    exclude("*")
-  }
 
   implementation(libs.commons.collections3)
-  implementation(libs.commons.lang3)
   implementation(libs.commons.configuration1)
   implementation(libs.commons.io)
-  implementation(libs.htrace.core4)
+  implementation(libs.commons.lang3)
   implementation(libs.guava)
   implementation(libs.hadoop2.auth) {
     exclude("*")
   }
-  implementation(libs.woodstox.core)
   implementation(libs.hadoop2.common) {
     exclude("*")
   }
+  implementation(libs.htrace.core4)
   implementation(libs.slf4j.api)
-
-  compileOnly(libs.lombok)
+  implementation(libs.woodstox.core)
 
   annotationProcessor(libs.lombok)
 
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:hive-metastore-common", 
"testArtifacts"))
   testImplementation(project(":clients:client-java")) {
     exclude("org.apache.logging.log4j")
   }
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server")) {
     exclude("org.apache.logging.log4j")
@@ -75,28 +73,12 @@ dependencies {
     exclude("org.apache.logging.log4j")
   }
 
-  testImplementation(libs.awaitility)
-  testImplementation(libs.bundles.jetty)
-  testImplementation(libs.bundles.jersey)
-  testImplementation(libs.commons.collections3)
-  testImplementation(libs.commons.configuration1)
-  testImplementation(libs.datanucleus.core)
-  testImplementation(libs.datanucleus.api.jdo)
-  testImplementation(libs.datanucleus.rdbms)
-  testImplementation(libs.datanucleus.jdo)
-  testImplementation(libs.derby)
-  testImplementation(libs.hadoop2.auth) {
-    exclude("*")
-  }
-  testImplementation(libs.hadoop2.hdfs)
-  testImplementation(libs.hadoop2.mapreduce.client.core) {
-    exclude("*")
+  
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$fullSparkVersion")
 {
+    exclude("org.apache.hadoop")
+    exclude("io.dropwizard.metrics")
+    exclude("com.fasterxml.jackson.core")
+    exclude("com.fasterxml.jackson.module", "jackson-module-scala_2.12")
   }
-  testImplementation(libs.htrace.core4)
-  testImplementation(libs.junit.jupiter.api)
-  testImplementation(libs.mysql.driver)
-  testImplementation(libs.postgresql.driver)
-  testImplementation(libs.prometheus.dropwizard)
   
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$fullSparkVersion")
 {
     exclude("org.apache.hadoop")
     exclude("io.dropwizard.metrics")
@@ -110,13 +92,6 @@ dependencies {
     exclude("io.dropwizard.metrics")
     exclude("org.rocksdb")
   }
-  testImplementation(libs.testcontainers)
-  
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$fullSparkVersion")
 {
-    exclude("org.apache.hadoop")
-    exclude("io.dropwizard.metrics")
-    exclude("com.fasterxml.jackson.core")
-    exclude("com.fasterxml.jackson.module", "jackson-module-scala_2.12")
-  }
   
testImplementation("org.apache.spark:spark-sql_$scalaVersion:$fullSparkVersion")
 {
     exclude("org.apache.avro")
     exclude("org.apache.hadoop")
@@ -124,6 +99,29 @@ dependencies {
     exclude("io.dropwizard.metrics")
     exclude("org.rocksdb")
   }
+  testImplementation(libs.awaitility)
+  testImplementation(libs.bundles.jersey)
+  testImplementation(libs.bundles.jetty)
+  testImplementation(libs.commons.collections3)
+  testImplementation(libs.commons.configuration1)
+  testImplementation(libs.datanucleus.api.jdo)
+  testImplementation(libs.datanucleus.core)
+  testImplementation(libs.datanucleus.jdo)
+  testImplementation(libs.datanucleus.rdbms)
+  testImplementation(libs.derby)
+  testImplementation(libs.hadoop2.auth) {
+    exclude("*")
+  }
+  testImplementation(libs.hadoop2.hdfs)
+  testImplementation(libs.hadoop2.mapreduce.client.core) {
+    exclude("*")
+  }
+  testImplementation(libs.htrace.core4)
+  testImplementation(libs.junit.jupiter.api)
+  testImplementation(libs.mysql.driver)
+  testImplementation(libs.postgresql.driver)
+  testImplementation(libs.prometheus.dropwizard)
+  testImplementation(libs.testcontainers)
 
   
testRuntimeOnly("org.apache.hudi:hudi-spark$sparkVersion-bundle_$scalaVersion:$hudiVersion")
   testRuntimeOnly(libs.junit.jupiter.engine)
diff --git a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts 
b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
index 26d74f2fd5..71dd4f7a1f 100644
--- a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts
@@ -31,25 +31,22 @@ val icebergVersion: String = libs.versions.iceberg.get()
 val scalaCollectionCompatVersion: String = 
libs.versions.scala.collection.compat.get()
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common"))
-  implementation(project(":common")) {
-    exclude("*")
-  }
-  implementation(project(":core")) {
-    exclude("*")
-  }
   implementation(project(":iceberg:iceberg-common"))
-  implementation(libs.bundles.iceberg)
 
+  implementation(libs.asm)
+  implementation(libs.bundles.iceberg)
   implementation(libs.bundles.log4j)
   implementation(libs.cglib) {
     // The version of build-in asm is 7.1, which is not compatible with Java 
17 well
     exclude("org.ow2.asm")
   }
-  implementation(libs.asm)
   implementation(libs.commons.collections4)
   implementation(libs.commons.io)
   implementation(libs.commons.lang3)
@@ -57,15 +54,15 @@ dependencies {
 
   annotationProcessor(libs.lombok)
 
-  compileOnly(libs.lombok)
-
+  testImplementation(project(":api"))
   testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
 
-  
testImplementation("org.scala-lang.modules:scala-collection-compat_$scalaVersion:$scalaCollectionCompatVersion")
   
testImplementation("org.apache.iceberg:iceberg-spark-runtime-${sparkMajorVersion}_$scalaVersion:$icebergVersion")
   
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$sparkVersion") {
     exclude("org.apache.hive")
@@ -77,8 +74,12 @@ dependencies {
     exclude("io.dropwizard.metrics")
     exclude("org.rocksdb")
   }
-
+  
testImplementation("org.scala-lang.modules:scala-collection-compat_$scalaVersion:$scalaCollectionCompatVersion")
   testImplementation(libs.awaitility)
+  // Add Hadoop 3.3+ dependencies since Spark's Hadoop is excluded
+  // Required for Iceberg 1.10+ which uses newer Hadoop APIs like 
FileSystem.openFile()
+  testImplementation(libs.hadoop3.client.api)
+  testImplementation(libs.hadoop3.client.runtime)
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.mockito.core)
@@ -90,11 +91,6 @@ dependencies {
   testImplementation(libs.testcontainers.mysql)
   testImplementation(libs.testcontainers.postgresql)
 
-  // Add Hadoop 3.3+ dependencies since Spark's Hadoop is excluded
-  // Required for Iceberg 1.10+ which uses newer Hadoop APIs like 
FileSystem.openFile()
-  testImplementation(libs.hadoop3.client.api)
-  testImplementation(libs.hadoop3.client.runtime)
-
   testRuntimeOnly(libs.junit.jupiter.engine)
 }
 
diff --git a/catalogs/catalog-lakehouse-paimon/build.gradle.kts 
b/catalogs/catalog-lakehouse-paimon/build.gradle.kts
index b0cfb6c5f0..7a40255bc4 100644
--- a/catalogs/catalog-lakehouse-paimon/build.gradle.kts
+++ b/catalogs/catalog-lakehouse-paimon/build.gradle.kts
@@ -30,18 +30,17 @@ val sparkMajorVersion: String = 
sparkVersion.substringBeforeLast(".")
 val paimonVersion: String = libs.versions.paimon.get()
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.lombok)
+
   implementation(project(":catalogs:catalog-common")) {
     exclude("*")
   }
-  implementation(project(":common")) {
-    exclude("*")
-  }
-  implementation(project(":core")) {
-    exclude("*")
-  }
+
+  implementation(libs.bundles.log4j)
   implementation(libs.bundles.paimon) {
     exclude("com.sun.jersey")
     exclude("javax.servlet")
@@ -101,7 +100,6 @@ dependencies {
     exclude("com.google.code.findbugs")
     exclude("com.github.spotbugs")
   }
-  implementation(libs.bundles.log4j)
   implementation(libs.commons.lang3)
   implementation(libs.guava)
   implementation(libs.hadoop2.common) {
@@ -124,16 +122,23 @@ dependencies {
   implementation(libs.hadoop2.mapreduce.client.core) {
     exclude("*")
   }
+
   annotationProcessor(libs.lombok)
-  compileOnly(libs.lombok)
 
+  testImplementation(project(":api"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common")) {
     exclude("org.mortbay.jetty")
     exclude("com.sun.jersey.contribs")
   }
+
+  
testImplementation("org.apache.paimon:paimon-spark-$sparkMajorVersion:$paimonVersion")
 {
+    exclude("org.apache.hadoop")
+  }
   
testImplementation("org.apache.spark:spark-hive_$scalaVersion:$sparkVersion") {
     exclude("org.apache.hadoop")
     exclude("org.rocksdb")
@@ -145,22 +150,18 @@ dependencies {
     exclude("io.dropwizard.metrics")
     exclude("org.rocksdb")
   }
-  
testImplementation("org.apache.paimon:paimon-spark-$sparkMajorVersion:$paimonVersion")
 {
-    exclude("org.apache.hadoop")
-  }
-
   testImplementation(libs.awaitility)
-  testImplementation(libs.slf4j.api)
   testImplementation(libs.awaitility)
-  testImplementation(libs.junit.jupiter.api)
-  testImplementation(libs.mysql.driver)
-  testImplementation(libs.postgresql.driver)
-  testImplementation(libs.h2db)
   testImplementation(libs.bundles.log4j)
+  testImplementation(libs.h2db)
+  testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.junit.jupiter.params)
+  testImplementation(libs.mysql.driver)
   testImplementation(libs.paimon.oss)
   testImplementation(libs.paimon.s3)
   testImplementation(libs.paimon.spark)
+  testImplementation(libs.postgresql.driver)
+  testImplementation(libs.slf4j.api)
   testImplementation(libs.testcontainers)
   testImplementation(libs.testcontainers.localstack)
   testImplementation(libs.testcontainers.mysql)
diff --git a/catalogs/catalog-model/build.gradle.kts 
b/catalogs/catalog-model/build.gradle.kts
index 51bd0e0f3a..da2cc3c4fa 100644
--- a/catalogs/catalog-model/build.gradle.kts
+++ b/catalogs/catalog-model/build.gradle.kts
@@ -25,35 +25,34 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude(group = "*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
 
   implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
-  implementation(project(":common")) {
-    exclude(group = "*")
-  }
-  implementation(project(":core")) {
-    exclude(group = "*")
-  }
+
   implementation(libs.guava)
   implementation(libs.slf4j.api)
 
+  testImplementation(project(":api"))
   testImplementation(project(":clients:client-java"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
   testImplementation(project(":server"))
   testImplementation(project(":server-common"))
+
   testImplementation(libs.awaitility)
   testImplementation(libs.bundles.log4j)
   testImplementation(libs.commons.io)
   testImplementation(libs.commons.lang3)
+  testImplementation(libs.junit.jupiter.api)
+  testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.mockito.core)
   testImplementation(libs.mockito.inline)
   testImplementation(libs.mysql.driver)
-  testImplementation(libs.junit.jupiter.api)
-  testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.postgresql.driver)
   testImplementation(libs.testcontainers)
   testImplementation(libs.testcontainers.mysql)
diff --git a/catalogs/hadoop-common/build.gradle.kts 
b/catalogs/hadoop-common/build.gradle.kts
index 47dab24c75..4394bd3c26 100644
--- a/catalogs/hadoop-common/build.gradle.kts
+++ b/catalogs/hadoop-common/build.gradle.kts
@@ -23,17 +23,20 @@ plugins {
 
 // try to avoid adding extra dependencies because it is used by catalogs and 
connectors.
 dependencies {
-  implementation(project(":api"))
-  implementation(project(":common"))
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
 
   implementation(libs.cglib)
-  implementation(libs.commons.lang3)
   implementation(libs.commons.io)
+  implementation(libs.commons.lang3)
+  implementation(libs.guava)
   implementation(libs.hadoop3.client.api)
   implementation(libs.hadoop3.client.runtime)
-  implementation(libs.guava)
   implementation(libs.slf4j.api)
 
+  testImplementation(project(":api"))
+  testImplementation(project(":common"))
+
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.junit.jupiter.params)
 
diff --git a/catalogs/hive-metastore-common/build.gradle.kts 
b/catalogs/hive-metastore-common/build.gradle.kts
index de36565189..70fca295eb 100644
--- a/catalogs/hive-metastore-common/build.gradle.kts
+++ b/catalogs/hive-metastore-common/build.gradle.kts
@@ -24,75 +24,48 @@ plugins {
 }
 
 dependencies {
-  implementation(project(":api")) {
-    exclude("*")
-  }
+  compileOnly(project(":api"))
+  compileOnly(project(":common"))
+  compileOnly(project(":core"))
+
+  compileOnly(libs.hive2.metastore)
+  compileOnly(libs.immutables.value)
+  compileOnly(libs.lombok)
 
   implementation(project(":catalogs:catalog-common")) {
     exclude("*")
   }
-  implementation(project(":common")) {
-    exclude("*")
-  }
-  implementation(project(":core")) {
-    exclude("*")
-  }
   implementation(project(":clients:client-java-runtime", configuration = 
"shadow"))
 
   implementation(libs.caffeine)
   implementation(libs.guava)
   implementation(libs.slf4j.api)
 
-  compileOnly(libs.hive2.metastore)
-  compileOnly(libs.immutables.value)
-  compileOnly(libs.lombok)
-
   annotationProcessor(libs.immutables.value)
   annotationProcessor(libs.lombok)
 
+  testImplementation(project(":api"))
+  testImplementation(project(":common"))
+  testImplementation(project(":core"))
+  testImplementation(project(":integration-test-common", "testArtifacts"))
+
   testImplementation(libs.bundles.log4j)
   testImplementation(libs.commons.collections3)
   testImplementation(libs.commons.configuration1)
-  testImplementation(libs.datanucleus.core)
   testImplementation(libs.datanucleus.api.jdo)
-  testImplementation(libs.datanucleus.rdbms)
+  testImplementation(libs.datanucleus.core)
   testImplementation(libs.datanucleus.jdo)
+  testImplementation(libs.datanucleus.rdbms)
   testImplementation(libs.derby)
-  testImplementation(libs.hive2.metastore) {
-    exclude("ant")
-    exclude("co.cask.tephra")
-    exclude("com.github.joshelser")
-    exclude("com.google.code.findbugs", "jsr305")
-    exclude("com.google.code.findbugs", "sr305")
-    exclude("com.tdunning", "json")
-    exclude("com.zaxxer", "HikariCP")
-    exclude("io.dropwizard.metrics")
-    exclude("javax.transaction", "transaction-api")
-    exclude("org.apache.ant")
-    exclude("org.apache.avro")
-    exclude("org.apache.curator")
-    exclude("org.apache.derby")
-    exclude("org.apache.hadoop", "hadoop-yarn-server-resourcemanager")
-    exclude("org.apache.hbase")
-    exclude("org.apache.logging.log4j")
-    exclude("org.apache.parquet", "parquet-hadoop-bundle")
-    exclude("org.apache.zookeeper")
-    exclude("org.datanucleus")
-    exclude("org.eclipse.jetty.aggregate", "jetty-all")
-    exclude("org.eclipse.jetty.orbit", "javax.servlet")
-    exclude("org.openjdk.jol")
-    exclude("org.slf4j")
-  }
-  testImplementation(libs.hadoop2.common) {
+  testImplementation(libs.hadoop2.auth) {
     exclude("*")
   }
-  testImplementation(libs.hadoop2.auth) {
+  testImplementation(libs.hadoop2.common) {
     exclude("*")
   }
   testImplementation(libs.hadoop2.mapreduce.client.core) {
     exclude("*")
   }
-  testImplementation(libs.htrace.core4)
   testImplementation(libs.hive2.exec) {
     artifact {
       classifier = "core"
@@ -119,11 +92,36 @@ dependencies {
     exclude("org.pentaho")
     exclude("org.slf4j")
   }
+  testImplementation(libs.hive2.metastore) {
+    exclude("ant")
+    exclude("co.cask.tephra")
+    exclude("com.github.joshelser")
+    exclude("com.google.code.findbugs", "jsr305")
+    exclude("com.google.code.findbugs", "sr305")
+    exclude("com.tdunning", "json")
+    exclude("com.zaxxer", "HikariCP")
+    exclude("io.dropwizard.metrics")
+    exclude("javax.transaction", "transaction-api")
+    exclude("org.apache.ant")
+    exclude("org.apache.avro")
+    exclude("org.apache.curator")
+    exclude("org.apache.derby")
+    exclude("org.apache.hadoop", "hadoop-yarn-server-resourcemanager")
+    exclude("org.apache.hbase")
+    exclude("org.apache.logging.log4j")
+    exclude("org.apache.parquet", "parquet-hadoop-bundle")
+    exclude("org.apache.zookeeper")
+    exclude("org.datanucleus")
+    exclude("org.eclipse.jetty.aggregate", "jetty-all")
+    exclude("org.eclipse.jetty.orbit", "javax.servlet")
+    exclude("org.openjdk.jol")
+    exclude("org.slf4j")
+  }
+  testImplementation(libs.htrace.core4)
   testImplementation(libs.junit.jupiter.api)
   testImplementation(libs.mockito.core)
-  testImplementation(libs.woodstox.core)
   testImplementation(libs.testcontainers)
-  testImplementation(project(":integration-test-common", "testArtifacts"))
+  testImplementation(libs.woodstox.core)
 
   testRuntimeOnly(libs.junit.jupiter.engine)
 }
diff --git a/catalogs/hive-metastore2-libs/build.gradle.kts 
b/catalogs/hive-metastore2-libs/build.gradle.kts
index f2629d30ca..b539a1c45b 100644
--- a/catalogs/hive-metastore2-libs/build.gradle.kts
+++ b/catalogs/hive-metastore2-libs/build.gradle.kts
@@ -26,8 +26,8 @@ plugins {
 }
 
 dependencies {
-  implementation(libs.hive2.metastore)
   implementation(libs.hadoop2.common)
+  implementation(libs.hive2.metastore)
 }
 
 tasks {
diff --git a/catalogs/hive-metastore3-libs/build.gradle.kts 
b/catalogs/hive-metastore3-libs/build.gradle.kts
index 918d3ebd9a..ca0ea1ea24 100644
--- a/catalogs/hive-metastore3-libs/build.gradle.kts
+++ b/catalogs/hive-metastore3-libs/build.gradle.kts
@@ -26,8 +26,8 @@ plugins {
 }
 
 dependencies {
-  implementation(libs.hive3.metastore)
   implementation(libs.hadoop2.common)
+  implementation(libs.hive3.metastore)
 }
 
 tasks {
diff --git a/docs/jdbc-clickhouse-catalog.md b/docs/jdbc-clickhouse-catalog.md
index 91506f7cbb..9b248c3da7 100644
--- a/docs/jdbc-clickhouse-catalog.md
+++ b/docs/jdbc-clickhouse-catalog.md
@@ -23,13 +23,13 @@ ClickHouse catalog is not included in the standard 
Gravitino server distribution
 
 ### Catalog capabilities
 
-| Item              | Description                                              
                                               |
-|-------------------|---------------------------------------------------------------------------------------------------------|
-| Scope             | One catalog maps to one ClickHouse instance              
                                               |
-| Metadata/DDL      | Supports JDBC-based metadata management and DDL          
                                               |
-| Column defaults   | Supports column default values                           
                                               |
-| Drivers           | Requires user-provided ClickHouse JDBC driver in 
`catalogs-contrib/catalog-jdbc-clickhouse/libs`        |
-| Supported version | All the codes are tested by ClickHouse `24.8.14`, but 
should be compatible with other versions as well. |                             
                   
+| Item              | Description                                              
                                                                                
                                                                     |
+|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Scope             | One catalog maps to one ClickHouse instance              
                                                                                
                                                                     |
+| Metadata/DDL      | Supports JDBC-based metadata management and DDL          
                                                                                
                                                                     |
+| Column defaults   | Supports column default values                           
                                                                                
                                                                     |
+| Drivers           | Requires user-provided ClickHouse JDBC driver in 
`${GRAVITINO_HOME}/catalogs/jdbc-clickhouse/libs`, please download the jar from 
[link](https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.7.1/) |
+| Supported version | All the codes are tested by ClickHouse `24.8.14`, but 
should be compatible with other versions as well.                               
                                                                        |       
                                         
 
 ### Catalog properties
 
@@ -49,7 +49,7 @@ When using the JDBC catalog you must provide `jdbc-url`, 
`jdbc-driver`, `jdbc-us
 
 ### Create a ClickHouse catalog
 
-The following example creates a ClickHouse catalog with the required JDBC 
properties and optional connection pool settings. Note that the `jdbc-driver` 
class must be available in the Gravitino classpath (for example by placing the 
ClickHouse JDBC driver JAR in `catalogs/catalog-jdbc-clickhouse/libs`).
+The following example creates a ClickHouse catalog with the required JDBC 
properties and optional connection pool settings. Note that the `jdbc-driver` 
class must be available in the Gravitino classpath (for example by placing the 
ClickHouse JDBC driver JAR in 
`${GRAVITINO_HOME}/catalogs/jdbc-clickhouse/libs`).
 Description about some of the properties:
 - provider: must be `jdbc-clickhouse` for Gravitino to recognize the catalog 
as ClickHouse;
 - type: must be `RELATIONAL` since ClickHouse is a relational database; 

Reply via email to