diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..6bd5699ca --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,10 @@ +[versions] +sqliteJdbc = "3.50.2.0" +nightmonkeys = "1.0.0" +twelvemonkeys = "3.12.0" +springboot = "3.5.4" +lucene = "9.9.1" # v10 requires JDK 21 +jooq = "3.19.24" # should be aligned with the version provided by Spring Boot + +[plugins] +gradleGitProperties = {id = "com.gorylenko.gradle-git-properties", version = "2.5.2"} diff --git a/komga-tray/build.gradle.kts b/komga-tray/build.gradle.kts index 83942ffab..050bdbc91 100644 --- a/komga-tray/build.gradle.kts +++ b/komga-tray/build.gradle.kts @@ -5,7 +5,7 @@ plugins { kotlin("jvm") kotlin("plugin.spring") } - id("com.gorylenko.gradle-git-properties") version "2.5.2" + alias(libs.plugins.gradleGitProperties) id("org.jetbrains.compose") version "1.8.2" id("org.jetbrains.kotlin.plugin.compose") version "2.2.0" id("dev.hydraulic.conveyor") version "1.12" diff --git a/komga/build.gradle.kts b/komga/build.gradle.kts index 48bbb53d5..3f772eb46 100644 --- a/komga/build.gradle.kts +++ b/komga/build.gradle.kts @@ -3,13 +3,14 @@ import org.apache.tools.ant.taskdefs.condition.Os import org.flywaydb.gradle.task.FlywayMigrateTask import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.util.prefixIfNot +import org.springframework.boot.gradle.plugin.SpringBootPlugin plugins { kotlin("jvm") kotlin("plugin.spring") kotlin("kapt") - id("org.springframework.boot") version "3.5.4" - id("com.gorylenko.gradle-git-properties") version "2.5.2" + id("org.springframework.boot") version libs.versions.springboot.get() + alias(libs.plugins.gradleGitProperties) id("nu.studer.jooq") version "10.1" id("org.flywaydb.flyway") version "11.7.2" id("com.github.johnrengelman.processes") version "0.5.0" @@ -37,7 +38,7 @@ dependencies { implementation(kotlin("stdlib")) implementation(kotlin("reflect")) - api(platform("org.springframework.boot:spring-boot-dependencies:3.5.4")) + api(platform(SpringBootPlugin.BOM_COORDINATES)) api("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-webflux") @@ -51,7 +52,7 @@ dependencies { implementation("com.github.gotson:spring-session-caffeine:2.1.0") implementation("org.springframework.data:spring-data-commons") - kapt("org.springframework.boot:spring-boot-configuration-processor:3.5.4") + kapt("org.springframework.boot:spring-boot-configuration-processor:${libs.versions.springboot.get()}") implementation("org.flywaydb:flyway-core") @@ -66,14 +67,10 @@ dependencies { implementation("org.apache.commons:commons-lang3:3.18.0") implementation("commons-validator:commons-validator:1.10.0") - run { - // v10 requires JDK 21 - val luceneVersion = "9.9.1" - implementation("org.apache.lucene:lucene-core:$luceneVersion") - implementation("org.apache.lucene:lucene-analysis-common:$luceneVersion") - implementation("org.apache.lucene:lucene-queryparser:$luceneVersion") - implementation("org.apache.lucene:lucene-backward-codecs:$luceneVersion") - } + implementation("org.apache.lucene:lucene-core:${libs.versions.lucene.get()}") + implementation("org.apache.lucene:lucene-analysis-common:${libs.versions.lucene.get()}") + implementation("org.apache.lucene:lucene-queryparser:${libs.versions.lucene.get()}") + implementation("org.apache.lucene:lucene-backward-codecs:${libs.versions.lucene.get()}") implementation("com.ibm.icu:icu4j:77.1") @@ -88,12 +85,12 @@ dependencies { implementation("org.jsoup:jsoup:1.18.3") implementation("net.coobird:thumbnailator:0.4.20") - runtimeOnly("com.twelvemonkeys.imageio:imageio-jpeg:3.12.0") - runtimeOnly("com.twelvemonkeys.imageio:imageio-tiff:3.12.0") - runtimeOnly("com.twelvemonkeys.imageio:imageio-webp:3.12.0") - runtimeOnly("com.github.gotson.nightmonkeys:imageio-jxl:1.0.0") - runtimeOnly("com.github.gotson.nightmonkeys:imageio-heif:1.0.0") - runtimeOnly("com.github.gotson.nightmonkeys:imageio-webp:1.0.0") + runtimeOnly("com.twelvemonkeys.imageio:imageio-jpeg:${libs.versions.twelvemonkeys.get()}") + runtimeOnly("com.twelvemonkeys.imageio:imageio-tiff:${libs.versions.twelvemonkeys.get()}") + runtimeOnly("com.twelvemonkeys.imageio:imageio-webp:${libs.versions.twelvemonkeys.get()}") + runtimeOnly("com.github.gotson.nightmonkeys:imageio-jxl:${libs.versions.nightmonkeys.get()}") + runtimeOnly("com.github.gotson.nightmonkeys:imageio-heif:${libs.versions.nightmonkeys.get()}") + runtimeOnly("com.github.gotson.nightmonkeys:imageio-webp:${libs.versions.nightmonkeys.get()}") // support for jpeg2000 runtimeOnly("com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0") runtimeOnly("org.apache.pdfbox:jbig2-imageio:3.0.4") @@ -107,8 +104,8 @@ dependencies { implementation("com.github.ben-manes.caffeine:caffeine") - implementation("org.xerial:sqlite-jdbc:3.50.2.0") - jooqGenerator("org.xerial:sqlite-jdbc:3.50.2.0") + implementation("org.xerial:sqlite-jdbc:${libs.versions.sqliteJdbc.get()}") + jooqGenerator("org.xerial:sqlite-jdbc:${libs.versions.sqliteJdbc.get()}") if (version.toString().endsWith(".0.0")) { ksp("com.github.gotson.bestbefore:bestbefore-processor-kotlin:0.2.0") @@ -127,9 +124,9 @@ dependencies { benchmarkImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") benchmarkImplementation("org.openjdk.jmh:jmh-core:1.37") kaptBenchmark("org.openjdk.jmh:jmh-generator-annprocess:1.37") - kaptBenchmark("org.springframework.boot:spring-boot-configuration-processor:3.5.4") + kaptBenchmark("org.springframework.boot:spring-boot-configuration-processor:${libs.versions.springboot.get()}") - developmentOnly("org.springframework.boot:spring-boot-devtools:3.5.4") + developmentOnly("org.springframework.boot:spring-boot-devtools:${libs.versions.springboot.get()}") } kotlin { @@ -306,13 +303,13 @@ tasks.register("flywayMigrateTasks", FlywayMigrateTask::class) { buildscript { configurations["classpath"].resolutionStrategy.eachDependency { if (requested.group.startsWith("org.jooq") && requested.name.startsWith("jooq")) { - useVersion("3.19.24") + useVersion(libs.versions.jooq.get()) } } } jooq { - version = "3.19.24" + version = libs.versions.jooq.get() configurations { create("main") { jooqConfiguration.apply {