Skip to content

What is the need for the sqlite-jdbc dependency? #12

@cies

Description

@cies

I found that terpal-sql has a dependency on sqlite-jdbc. Since I do not use sqlite, I excluded it:

  api("io.exoquery:terpal-sql-jdbc:$terpalSqlVersion") {
    exclude(group = "org.xerial", module = "sqlite-jdbc")
  }

My whole app stack is 11MB after excluding this dependency, which clocked in at a whopping 13MB.

So I wondered: is there a reason this is a dependency and do I do something stoopid by excluding it? Or should it not be a terpal-sql dependency at all?

I've searched this repository for the "xerial" and only found the dependency in 2 places where, both as test dependencies... So I'm not sure why it is a transient dependency of my project.

Here an excerpt of the output of ./gradlew -q dependencies --configuration runtimeClasspath without excluding sqlite-jdbc:

...
|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*)
|         \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (*)
+--- io.exoquery:terpal-sql-jdbc:2.0.0.PL-1.2.0
|    \--- io.exoquery:terpal-sql-jdbc-jvm:2.0.0.PL-1.2.0
|         +--- io.exoquery:terpal-runtime:2.1.0-2.0.0.PL -> 2.1.20-2.0.0.PL
|         |    \--- io.exoquery:terpal-runtime-jvm:2.1.20-2.0.0.PL
|         |         \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*)
|         +--- io.exoquery:terpal-sql-core:2.0.0.PL-1.2.0
|         |    \--- io.exoquery:terpal-sql-core-jvm:2.0.0.PL-1.2.0
|         |         +--- io.exoquery:terpal-runtime:2.1.0-2.0.0.PL -> 2.1.20-2.0.0.PL (*)
|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.2 -> 1.8.1 (*)
|         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2 -> 1.8.1 (*)
|         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1
|         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1
|         |         |         +--- org.jetbrains:annotations:23.0.0 -> 24.1.0
|         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1
|         |         |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1 (c)
|         |         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (c)
|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.1.20 (*)
|         |         +--- org.jetbrains.kotlinx:kotlinx-datetime:0.6.0
|         |         |    \--- org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.0
|         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.1.20 (*)
|         |         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*)
|         |         \--- org.jetbrains.kotlinx:atomicfu:0.23.1
|         |              \--- org.jetbrains.kotlinx:atomicfu-jvm:0.23.1
|         |                   +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.1.20 (*)
|         |                   \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.21 -> 2.1.20
|         |                        \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*)
|         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.2 -> 1.8.1 (*)
|         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2 -> 1.8.1 (*)
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
|         +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.20 (*)
|         +--- com.zaxxer:HikariCP:5.0.1 -> 5.1.0
|         |    \--- org.slf4j:slf4j-api:1.7.36 -> 2.0.17
|         +--- com.typesafe:config:1.4.1
|         +--- org.xerial:sqlite-jdbc:3.42.0.1     // <-- here it is!
|         \--- org.jetbrains:annotations:24.1.0
+--- io.exoquery:terpal-runtime:2.1.20-2.0.0.PL (*)
+--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 (*)
+--- org.http4k:http4k-bom:6.9.2.0
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions