From 235e8b6e3c8ed0e3bb781578a12cbb0674356eb1 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Thu, 6 May 2021 12:03:45 +0200 Subject: [PATCH] Use gradle catalogs --- app/build.gradle.kts | 18 ++--- .../src/main/kotlin/be/simplenotes/Libs.kt | 78 +------------------ config/build.gradle.kts | 6 +- domain/build.gradle.kts | 24 +++--- gradle/libs.versions.toml | 61 +++++++++++++++ persistence/build.gradle.kts | 29 +++---- search/build.gradle.kts | 10 +-- settings.gradle.kts | 2 + types/build.gradle.kts | 4 +- views/build.gradle.kts | 7 +- 10 files changed, 101 insertions(+), 138 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 065b3c4..20a1c11 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -14,20 +13,17 @@ dependencies { implementation(project(":views")) implementation(project(":css")) - implementation(Libs.Http4k.core) - implementation(Libs.Jetty.server) - implementation(Libs.Jetty.servlet) - implementation(Libs.javaxServlet) - implementation(Libs.Kotlinx.Serialization.json) + implementation(libs.http4k.core) + implementation(libs.bundles.jetty) + implementation(libs.kotlinx.serialization.json) - implementation(Libs.Slf4J.api) - runtimeOnly(Libs.Slf4J.logback) + implementation(libs.slf4j.api) + runtimeOnly(libs.slf4j.logback) micronaut() - testImplementation(Libs.Test.junit) - testImplementation(Libs.Test.assertJ) - testImplementation(Libs.Http4k.testingHamkrest) + testImplementation(libs.bundles.test) + testImplementation(libs.http4k.testing.hamkrest) } docker { diff --git a/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt b/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt index b3a9418..b62fa6e 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt +++ b/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt @@ -4,86 +4,10 @@ package be.simplenotes object Libs { - object Flexmark { - private const val version = "0.62.2" - const val core = "com.vladsch.flexmark:flexmark:$version" - const val tasklist = "com.vladsch.flexmark:flexmark-ext-gfm-tasklist:$version" - } - - object Database { - const val flyway = "org.flywaydb:flyway-core:7.5.4" - const val hikariCP = "com.zaxxer:HikariCP:4.0.2" - - object Drivers { - const val h2 = "com.h2database:h2:1.4.200" - } - - object Ktorm { - const val core = "org.ktorm:ktorm-core:3.3.0" - } - } - - object Lucene { - private const val version = "8.8.1" - const val core = "org.apache.lucene:lucene-core:$version" - const val analyzersCommon = "org.apache.lucene:lucene-analyzers-common:$version" - const val queryParser = "org.apache.lucene:lucene-queryparser:$version" - } - - object Http4k { - private const val version = "4.3.5.4" - const val core = "org.http4k:http4k-core:$version" - const val testingHamkrest = "org.http4k:http4k-testing-hamkrest:$version" - } - - object Jetty { - private const val version = "10.0.1" - const val server = "org.eclipse.jetty:jetty-server:$version" - const val servlet = "org.eclipse.jetty:jetty-servlet:$version" - } - - object Kotlinx { - const val html = "org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.3" - - object Serialization { - const val json = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0" - } - } - - object Slf4J { - const val api = "org.slf4j:slf4j-api:2.0.0-alpha1" - const val logback = "ch.qos.logback:logback-classic:1.3.0-alpha5" - } - - object Mapstruct { - private const val version = "1.4.2.Final" - const val core = "org.mapstruct:mapstruct:$version" - const val processor = "org.mapstruct:mapstruct-processor:$version" - } - object Micronaut { - private const val version = "2.3.3" + private const val version = "2.5.1" const val inject = "io.micronaut:micronaut-inject:$version" const val processor = "io.micronaut:micronaut-inject-java:$version" } - const val arrowCoreData = "io.arrow-kt:arrow-core-data:0.11.0" - const val commonsCompress = "org.apache.commons:commons-compress:1.20" - const val javaJwt = "com.auth0:java-jwt:3.13.0" - const val javaxServlet = "javax.servlet:javax.servlet-api:4.0.1" - const val jbcrypt = "org.mindrot:jbcrypt:0.4" - const val konform = "io.konform:konform-jvm:0.2.0" - const val owaspHtmlSanitizer = "com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20200713.1" - const val prettytime = "org.ocpsoft.prettytime:prettytime:5.0.0.Final" - const val snakeyaml = "org.yaml:snakeyaml:1.28" - - object Test { - const val assertJ = "org.assertj:assertj-core:3.19.0" - const val hamkrest = "com.natpryce:hamkrest:1.8.0.1" - const val junit = "org.junit.jupiter:junit-jupiter:5.7.1" - const val mockk = "io.mockk:mockk:1.10.6" - const val faker = "com.github.javafaker:javafaker:1.0.2" - const val mariaTestContainer = "org.testcontainers:mariadb:1.15.2" - } - } diff --git a/config/build.gradle.kts b/config/build.gradle.kts index 8fcb7ae..5194818 100644 --- a/config/build.gradle.kts +++ b/config/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -9,7 +8,6 @@ plugins { dependencies { micronaut() - testImplementation(Libs.Test.junit) - testImplementation(Libs.Test.assertJ) - testRuntimeOnly(Libs.Slf4J.logback) + testImplementation(libs.bundles.test) + testRuntimeOnly(libs.slf4j.logback) } diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 9561739..fc70ed6 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -13,21 +12,18 @@ dependencies { implementation(project(":persistence")) implementation(project(":search")) - api(Libs.arrowCoreData) - api(Libs.konform) + api(libs.arrow.core.data) + api(libs.konform) micronaut() - implementation(Libs.Kotlinx.Serialization.json) - implementation(Libs.jbcrypt) - implementation(Libs.javaJwt) - implementation(Libs.Flexmark.core) - implementation(Libs.Flexmark.tasklist) - implementation(Libs.snakeyaml) - implementation(Libs.owaspHtmlSanitizer) - implementation(Libs.commonsCompress) + implementation(libs.kotlinx.serialization.json) + implementation(libs.bcrypt) + implementation(libs.jwt) + implementation(libs.bundles.flexmark) + implementation(libs.yaml) + implementation(libs.owasp.html.sanitizer) + implementation(libs.commonsCompress) - testImplementation(Libs.Test.hamkrest) - testImplementation(Libs.Test.junit) - testImplementation(Libs.Test.mockk) + testImplementation(libs.bundles.test) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..c8bcb7f --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,61 @@ +[versions] +flexmark = "0.62.2" +lucene = "8.8.2" +http4k = "4.8.0.0" +jetty = "10.0.2" +mapstruct = "1.4.2.Final" +micronaut-inject = "2.5.1" + +[libraries] +flexmark-core = { module = "com.vladsch.flexmark:flexmark", version.ref = "flexmark" } +flexmark-tasklist = { module = "com.vladsch.flexmark:flexmark-ext-gfm-tasklist", version.ref = "flexmark" } + +flyway = { module = "org.flywaydb:flyway-core", version = "7.8.2" } +hikariCP = { module = "com.zaxxer:HikariCP", version = "4.0.3" } +h2 = { module = "com.h2database:h2", version = "1.4.200" } +ktorm = { module = "org.ktorm:ktorm-core", version = "3.3.0" } + +lucene-core = { module = "org.apache.lucene:lucene-core", version.ref = "lucene" } +lucene-analyzers-common = { module = "org.apache.lucene:lucene-analyzers-common", version.ref = "lucene" } +lucene-queryparser = { module = "org.apache.lucene:lucene-queryparser", version.ref = "lucene" } + +http4k-core = { module = "org.http4k:http4k-core", version.ref = "http4k" } +http4k-testing-hamkrest = { module = "org.http4k:http4k-testing-hamkrest", version.ref = "http4k" } + +jetty-server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty" } +jetty-servlet = { module = "org.eclipse.jetty:jetty-servlet", version.ref = "jetty" } +javax-servlet = { module = "javax.servlet:javax.servlet-api", version = "4.0.1" } + +kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html-jvm", version = "0.7.3" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm", version = "1.2.0" } + +slf4j-api = { module = "org.slf4j:slf4j-api", version = "2.0.0-alpha1" } +slf4j-logback = { module = "ch.qos.logback:logback-classic", version = "1.3.0-alpha5" } + +mapstruct-core = { module = "org.mapstruct:mapstruct", version.ref = "mapstruct" } +mapstruct-processor = { module = "org.mapstruct:mapstruct-processor", version.ref = "mapstruct" } + +micronaut-inject = { module = "io.micronaut:micronaut-inject", version.ref = "micronaut-inject" } +micronaut-processor = { module = "io.micronaut:micronaut-inject-java", version.ref = "micronaut-inject" } + +arrow-core-data = { module = "io.arrow-kt:arrow-core-data", version = "0.11.0" } +commonsCompress = { module = "org.apache.commons:commons-compress", version = "1.20" } +jwt = { module = "com.auth0:java-jwt", version = "3.15.0" } +bcrypt = { module = "org.mindrot:jbcrypt", version = "0.4" } +konform = { module = "io.konform:konform-jvm", version = "0.2.0" } +owasp-html-sanitizer = { module = "com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer", version = "20200713.1" } +prettytime = { module = "org.ocpsoft.prettytime:prettytime", version = "5.0.1.Final" } +yaml = { module = "org.yaml:snakeyaml", version = "1.28" } + +assertJ = { module = "org.assertj:assertj-core", version = "3.19.0" } +hamkrest = { module = "com.natpryce:hamkrest", version = "1.8.0.1" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version = "5.7.1" } +mockk = { module = "io.mockk:mockk", version = "1.11.0" } +faker = { module = "com.github.javafaker:javafaker", version = "1.0.2" } + +[bundles] +flexmark = ["flexmark-core", "flexmark-tasklist"] +database = ["flyway", "hikariCP", "h2", "ktorm"] +lucene = ["lucene-core", "lucene-analyzers-common", "lucene-queryparser"] +jetty = ["jetty-server", "jetty-servlet", "javax-servlet"] +test = ["assertJ", "hamkrest", "junit-jupiter", "mockk"] diff --git a/persistence/build.gradle.kts b/persistence/build.gradle.kts index 022167f..5c27afd 100644 --- a/persistence/build.gradle.kts +++ b/persistence/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -12,35 +11,29 @@ dependencies { implementation(project(":types")) implementation(project(":config")) - implementation(Libs.Database.Drivers.h2) - implementation(Libs.Database.flyway) - implementation(Libs.Database.hikariCP) - implementation(Libs.Database.Ktorm.core) + implementation(libs.bundles.database) - implementation(Libs.Slf4J.api) - runtimeOnly(Libs.Slf4J.logback) + implementation(libs.slf4j.api) + runtimeOnly(libs.slf4j.logback) - compileOnly(Libs.Mapstruct.core) - kapt(Libs.Mapstruct.processor) + compileOnly(libs.mapstruct.core) + kapt(libs.mapstruct.processor) - testImplementation(Libs.Test.junit) - testImplementation(Libs.Test.assertJ) - testCompileOnly(Libs.Slf4J.logback) + testImplementation(libs.bundles.test) + testCompileOnly(libs.slf4j.logback) testFixturesImplementation(project(":types")) testFixturesImplementation(project(":config")) testFixturesImplementation(project(":persistence")) - testFixturesImplementation(Libs.Test.faker) { + testFixturesImplementation(libs.faker) { exclude(group = "org.yaml") } - testFixturesImplementation(Libs.snakeyaml) + testFixturesImplementation(libs.yaml) - testFixturesImplementation(Libs.Database.flyway) - testFixturesImplementation(Libs.Test.junit) - testFixturesImplementation(Libs.Database.Ktorm.core) - testFixturesImplementation(Libs.Database.hikariCP) + testFixturesImplementation(libs.bundles.database) + testFixturesImplementation(libs.junit.jupiter) micronaut() diff --git a/search/build.gradle.kts b/search/build.gradle.kts index 48de183..cadf718 100644 --- a/search/build.gradle.kts +++ b/search/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -10,13 +9,10 @@ dependencies { implementation(project(":types")) implementation(project(":config")) - implementation(Libs.Lucene.core) - implementation(Libs.Lucene.queryParser) - implementation(Libs.Lucene.analyzersCommon) - implementation(Libs.Slf4J.api) + implementation(libs.bundles.lucene) + implementation(libs.slf4j.api) micronaut() - testImplementation(Libs.Test.junit) - testImplementation(Libs.Test.assertJ) + testImplementation(libs.bundles.test) } diff --git a/settings.gradle.kts b/settings.gradle.kts index 1fd652f..ed73105 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,3 +8,5 @@ include(":types") include(":persistence") include(":css") include(":junit-config") + +enableFeaturePreview("VERSION_CATALOGS") diff --git a/types/build.gradle.kts b/types/build.gradle.kts index 5dbe191..0d5aca0 100644 --- a/types/build.gradle.kts +++ b/types/build.gradle.kts @@ -1,10 +1,8 @@ -import be.simplenotes.Libs - plugins { id("be.simplenotes.base") id("be.simplenotes.kotlinx-serialization") } dependencies { - implementation(Libs.Kotlinx.Serialization.json) + implementation(libs.kotlinx.serialization.json) } diff --git a/views/build.gradle.kts b/views/build.gradle.kts index fb1f38e..026e1c8 100644 --- a/views/build.gradle.kts +++ b/views/build.gradle.kts @@ -1,4 +1,3 @@ -import be.simplenotes.Libs import be.simplenotes.micronaut plugins { @@ -11,7 +10,7 @@ dependencies { micronaut() - implementation(Libs.konform) - implementation(Libs.Kotlinx.html) - implementation(Libs.prettytime) + implementation(libs.konform) + implementation(libs.kotlinx.html) + implementation(libs.prettytime) }