From c4bc301fb2787b7db2d56c2640ba9203323d20f1 Mon Sep 17 00:00:00 2001 From: Jimly Asshiddiqy Date: Fri, 14 Feb 2025 16:56:04 +0700 Subject: [PATCH 1/2] Implement version catalog --- build.gradle.kts | 24 +--- gradle.properties | 3 + gradle/libs.versions.toml | 113 ++++++++++++++++++ .../translators.gradle.kts | 0 settings.gradle.kts | 28 ++++- uhabits-android/build.gradle.kts | 97 ++++++--------- uhabits-core/build.gradle.kts | 35 +++--- uhabits-server/build.gradle.kts | 36 +++--- 8 files changed, 214 insertions(+), 122 deletions(-) create mode 100644 gradle/libs.versions.toml rename translators.gradle.kts => gradle/translators.gradle.kts (100%) diff --git a/build.gradle.kts b/build.gradle.kts index 0df91dee2..7c0fafc5f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,23 +1,11 @@ plugins { - val kotlinVersion = "2.1.10" - id("com.android.application") version "8.8.0" apply (false) - id("org.jetbrains.kotlin.android") version kotlinVersion apply (false) - id("org.jetbrains.kotlin.kapt") version kotlinVersion apply (false) - id("org.jetbrains.kotlin.multiplatform") version kotlinVersion apply (false) - id("org.jlleitschuh.gradle.ktlint") version "11.6.1" + alias(libs.plugins.agp) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.ktlint.plugin) apply false + alias(libs.plugins.shadow) apply false } apply { - from("translators.gradle.kts") -} - -allprojects { - repositories { - google() - mavenCentral() - maven(url = "https://plugins.gradle.org/m2/") - maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://jitpack.io") - maven(url = "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-js-wrappers/") // Repository for kotlin-css-jvm old versions, now that the Gradle Plugin Portal no longer brings these in by mirroring JCenter - } + from("gradle/translators.gradle.kts") } diff --git a/gradle.properties b/gradle.properties index cfc7ec4b1..5139a4280 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,3 +6,6 @@ android.enableJetifier=true android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false +org.gradle.configureondemand=true +org.gradle.warning.mode=all +org.gradle.caching=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..39e86f1e8 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,113 @@ +[versions] +agp = "8.6.1" +annotation = "1.9.1" +appcompat = "1.7.0" +appintro = "6.3.1" +commonsCodec = "1.16.0" +commonsIo = "1.3.2" +commonsLang3 = "3.14.0" +dagger = "2.55" +desugar = "2.1.4" +dexmaker = "2.28.3" +espresso = "3.6.1" +guava = "33.2.1-android" +hamcrest = "2.2" +jsr250 = "1.0" +jsr305 = "3.0.2" +junit = "1.2.1" +junitJupiter = "5.10.1" +junitVersion = "4.13.2" +konfetti-xml = "2.0.2" +kotlin = "2.1.10" +kotlin-css-jvm = "1.0.0-pre.148-kotlin-1.4.30" +kotlinxCoroutinesCoreCommon = "1.3.8" +ktlint-plugin = "11.6.1" +ktor = "1.6.8" +ktxCoroutine = "1.10.1" +legacy-support = "1.0.0" +logback = "1.4.14" +material = "1.12.0" +mockito-kotlin = "5.4.0" +opencsv = "5.9" +rules = "1.6.1" +shadow = "8.1.1" +simpleclient = "0.16.0" +sqliteJdbc = "3.45.1.0" +uiautomator = "2.3.0" + +[libraries] +annotation = { group = "androidx.annotation", name = "annotation", version.ref = "annotation" } +appIntro = { group = "com.github.AppIntro", name = "AppIntro", version.ref = "appintro" } +appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +commons-codec = { module = "commons-codec:commons-codec", version.ref = "commonsCodec" } +commons-io = { module = "org.apache.commons:commons-io", version.ref = "commonsIo" } +commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commonsLang3" } +dagger = { group = "com.google.dagger", name = "dagger", version.ref = "dagger" } +dagger-compiler = { group = "com.google.dagger", name = "dagger-compiler", version.ref = "dagger" } +desugar_jdk_libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" } +dexmaker-mockito = { group = "com.linkedin.dexmaker", name = "dexmaker-mockito", version.ref = "dexmaker" } +espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref = "espresso" } +espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" } +guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } +hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" } +jsr250-api = { group = "javax.annotation", name = "jsr250-api", version.ref = "jsr250" } +jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" } +junit = { group = "androidx.test.ext", name = "junit", version.ref = "junit" } +junit-junit = { module = "junit:junit", version.ref = "junitVersion" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junitJupiter" } +konfetti-xml = { group = "nl.dionsegijn", name = "konfetti-xml", version.ref = "konfetti-xml" } +kotlin-css-jvm = { group = "org.jetbrains", name = "kotlin-css-jvm", version.ref = "kotlin-css-jvm" } +kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "ktxCoroutine" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "ktxCoroutine" } +kotlinx-coroutines-core-common = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-common", version.ref = "kotlinxCoroutinesCoreCommon" } +kotlinx-coroutines-core-jvm = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", version.ref = "ktxCoroutine" } +ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" } +ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" } +ktor-client-jackson = { group = "io.ktor", name = "ktor-client-jackson", version.ref = "ktor" } +ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktor" } +ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktor" } +ktor-html-builder = { group = "io.ktor", name = "ktor-html-builder", version.ref = "ktor" } +ktor-jackson = { group = "io.ktor", name = "ktor-jackson", version.ref = "ktor" } +ktor-server-core = { group = "io.ktor", name = "ktor-server-core", version.ref = "ktor" } +ktor-server-netty = { group = "io.ktor", name = "ktor-server-netty", version.ref = "ktor" } +ktor-server-tests = { group = "io.ktor", name = "ktor-server-tests", version.ref = "ktor" } +legacy-preference-v14 = { group = "androidx.legacy", name = "legacy-preference-v14", version.ref = "legacy-support" } +legacy-support-v4 = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "legacy-support" } +logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logback" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +mockito-kotlin = { group = "org.mockito.kotlin", name = "mockito-kotlin", version.ref = "mockito-kotlin" } +opencsv = { group = "com.opencsv", name = "opencsv", version.ref = "opencsv" } +rules = { group = "androidx.test", name = "rules", version.ref = "rules" } +simpleclient = { group = "io.prometheus", name = "simpleclient", version.ref = "simpleclient" } +simpleclient_hotspot = { group = "io.prometheus", name = "simpleclient_hotspot", version.ref = "simpleclient" } +simpleclient_httpserver = { group = "io.prometheus", name = "simpleclient_httpserver", version.ref = "simpleclient" } +sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqliteJdbc" } +uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" } + +[bundles] +androidTest = [ + "espresso-contrib", + "espresso-core", + "dagger", + "dexmaker-mockito", + "ktor-client-mock", + "ktor-jackson", + "annotation", + "junit", + "uiautomator", + "rules", + "mockito-kotlin", +] +test = [ + "dagger", + "junit-junit", + "mockito-kotlin", +] + +[plugins] +agp = { id = "com.android.application", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +ktlint-plugin = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint-plugin" } +shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } \ No newline at end of file diff --git a/translators.gradle.kts b/gradle/translators.gradle.kts similarity index 100% rename from translators.gradle.kts rename to gradle/translators.gradle.kts diff --git a/settings.gradle.kts b/settings.gradle.kts index 67dcdf9bd..fc073a015 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,12 +1,32 @@ pluginManagement { repositories { gradlePluginPortal() - google() + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } } - resolutionStrategy.eachPlugin { - if (requested.id.id == "com.android.application") { - useModule("com.android.tools.build:gradle:${requested.version}") +} + +dependencyResolutionManagement { + @Suppress("UnstableApiUsage") + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } } + mavenCentral() + maven(url = "https://plugins.gradle.org/m2/") + maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") + maven(url = "https://jitpack.io") + // Repository for kotlin-css-jvm old versions, now that the Gradle Plugin Portal no longer brings these in by mirroring JCenter + maven(url = "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-js-wrappers/") } } diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts index c599664c1..41e2f666b 100644 --- a/uhabits-android/build.gradle.kts +++ b/uhabits-android/build.gradle.kts @@ -18,10 +18,10 @@ */ plugins { - id("com.android.application") version "8.8.0" - id("org.jetbrains.kotlin.android") - id("org.jetbrains.kotlin.kapt") - id("org.jlleitschuh.gradle.ktlint") + alias(libs.plugins.agp) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ktlint.plugin) } tasks.compileLint { @@ -40,7 +40,6 @@ kotlin { } android { - namespace = "org.isoron.uhabits" compileSdk = 35 // compileSdkPreview = "VanillaIceCream" @@ -66,7 +65,7 @@ android { } buildTypes { - getByName("release") { + release { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.txt") if (signingConfigs.findByName("release") != null) { @@ -74,8 +73,8 @@ android { } } - getByName("debug") { - isTestCoverageEnabled = true + debug { + enableUnitTestCoverage = true } } @@ -84,64 +83,38 @@ android { targetCompatibility(JavaVersion.VERSION_11) sourceCompatibility(JavaVersion.VERSION_11) } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.toString() - } - - buildFeatures { - viewBinding = true - } - lint { - abortOnError = false - } + kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString() + buildFeatures.viewBinding = true + lint.abortOnError = false } -dependencies { - val daggerVersion = "2.51.1" - val kotlinVersion = "2.1.10" - val kxCoroutinesVersion = "1.10.1" - val ktorVersion = "1.6.8" - val espressoVersion = "3.6.1" +kapt.correctErrorTypes = true - androidTestImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion") - androidTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion") - androidTestImplementation("com.google.dagger:dagger:$daggerVersion") - androidTestImplementation("com.linkedin.dexmaker:dexmaker-mockito:2.28.3") - androidTestImplementation("io.ktor:ktor-client-mock:$ktorVersion") - androidTestImplementation("io.ktor:ktor-jackson:$ktorVersion") - androidTestImplementation("androidx.annotation:annotation:1.7.1") - androidTestImplementation("androidx.test.ext:junit:1.2.1") - androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0") - androidTestImplementation("androidx.test:rules:1.6.1") - androidTestImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0") - compileOnly("javax.annotation:jsr250-api:1.0") - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") - implementation("com.github.AppIntro:AppIntro:6.3.1") - implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("com.google.dagger:dagger:$daggerVersion") - implementation("com.google.guava:guava:33.1.0-android") - implementation("io.ktor:ktor-client-android:$ktorVersion") - implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("io.ktor:ktor-client-jackson:$ktorVersion") - implementation("io.ktor:ktor-client-json:$ktorVersion") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$kxCoroutinesVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kxCoroutinesVersion") - implementation("androidx.appcompat:appcompat:1.7.0") - implementation("androidx.legacy:legacy-preference-v14:1.0.0") - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("com.google.android.material:material:1.12.0") - implementation("com.opencsv:opencsv:5.9") - implementation("nl.dionsegijn:konfetti-xml:2.0.2") +dependencies { + compileOnly(libs.jsr250.api) + coreLibraryDesugaring(libs.desugar.jdk.libs) + implementation(libs.appIntro) + implementation(libs.jsr305) + implementation(libs.dagger) + implementation(libs.guava) + implementation(libs.ktor.client.android) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.jackson) + implementation(libs.ktor.client.json) + implementation(libs.kotlin.stdlib.jdk8) + implementation(libs.kotlinx.coroutines.android) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.appcompat) + implementation(libs.legacy.preference.v14) + implementation(libs.legacy.support.v4) + implementation(libs.material) + implementation(libs.opencsv) + implementation(libs.konfetti.xml) implementation(project(":uhabits-core")) - kapt("com.google.dagger:dagger-compiler:$daggerVersion") - kaptAndroidTest("com.google.dagger:dagger-compiler:$daggerVersion") - testImplementation("com.google.dagger:dagger:$daggerVersion") - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0") -} + kapt(libs.dagger.compiler) + kaptAndroidTest(libs.dagger.compiler) -kapt { - correctErrorTypes = true + androidTestImplementation(libs.bundles.androidTest) + testImplementation(libs.bundles.test) } diff --git a/uhabits-core/build.gradle.kts b/uhabits-core/build.gradle.kts index 226cc9989..0baa70d72 100644 --- a/uhabits-core/build.gradle.kts +++ b/uhabits-core/build.gradle.kts @@ -19,7 +19,7 @@ plugins { kotlin("multiplatform") - id("org.jlleitschuh.gradle.ktlint") + alias(libs.plugins.ktlint.plugin) } kotlin { @@ -30,7 +30,7 @@ kotlin { val commonMain by getting { dependencies { implementation(kotlin("stdlib-common")) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.8") + implementation(libs.kotlinx.coroutines.core.common) } } @@ -44,14 +44,14 @@ kotlin { val jvmMain by getting { dependencies { implementation(kotlin("stdlib-jdk8")) - compileOnly("com.google.dagger:dagger:2.51.1") - implementation("com.google.guava:guava:33.1.0-android") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1") - implementation("androidx.annotation:annotation:1.7.1") - implementation("com.google.code.findbugs:jsr305:3.0.2") - implementation("com.opencsv:opencsv:5.9") - implementation("commons-codec:commons-codec:1.16.0") - implementation("org.apache.commons:commons-lang3:3.14.0") + compileOnly(libs.dagger) + implementation(libs.guava) + implementation(libs.kotlinx.coroutines.core.jvm) + implementation(libs.annotation) + implementation(libs.jsr305) + implementation(libs.opencsv) + implementation(libs.commons.codec) + implementation(libs.commons.lang3) } } @@ -59,19 +59,16 @@ kotlin { dependencies { implementation(kotlin("test")) implementation(kotlin("test-junit")) - implementation("org.xerial:sqlite-jdbc:3.45.1.0") - implementation("org.hamcrest:hamcrest:2.2") - implementation("org.apache.commons:commons-io:1.3.2") - implementation("org.mockito.kotlin:mockito-kotlin:5.4.0") - implementation("org.junit.jupiter:junit-jupiter:5.10.1") + implementation(libs.sqlite.jdbc) + implementation(libs.hamcrest) + implementation(libs.commons.io) + implementation(libs.mockito.kotlin) + implementation(libs.junit.jupiter) } } } } -tasks.named("jvmProcessResources") { - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} -tasks.named("jvmTestProcessResources") { +tasks.withType { duplicatesStrategy = DuplicatesStrategy.INCLUDE } diff --git a/uhabits-server/build.gradle.kts b/uhabits-server/build.gradle.kts index 9f2fda06a..077c3b2f5 100644 --- a/uhabits-server/build.gradle.kts +++ b/uhabits-server/build.gradle.kts @@ -22,7 +22,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { application id("kotlin") - id("com.github.johnrengelman.shadow") version "8.1.1" + alias(libs.plugins.shadow) } kotlin { @@ -36,27 +36,25 @@ application { mainClass.set("io.ktor.server.netty.EngineMain") } -dependencies { - val ktorVersion = "1.6.8" - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22") - implementation("io.ktor:ktor-server-netty:$ktorVersion") - implementation("ch.qos.logback:logback-classic:1.4.14") - implementation("io.ktor:ktor-server-core:$ktorVersion") - implementation("io.ktor:ktor-html-builder:$ktorVersion") - implementation("io.ktor:ktor-jackson:$ktorVersion") - implementation("org.jetbrains:kotlin-css-jvm:1.0.0-pre.148-kotlin-1.4.30") - implementation("io.prometheus:simpleclient:0.16.0") - implementation("io.prometheus:simpleclient_httpserver:0.16.0") - implementation("io.prometheus:simpleclient_hotspot:0.16.0") - testImplementation("io.ktor:ktor-server-tests:$ktorVersion") - testImplementation("org.mockito.kotlin:mockito-kotlin:5.2.1") - testImplementation(kotlin("test")) - testImplementation(kotlin("test-junit")) -} - tasks.withType { archiveBaseName.set("uhabits-server") archiveClassifier.set("") archiveVersion.set("") } +dependencies { + implementation(libs.kotlin.stdlib.jdk8) + implementation(libs.ktor.server.netty) + implementation(libs.logback.classic) + implementation(libs.ktor.server.core) + implementation(libs.ktor.html.builder) + implementation(libs.ktor.jackson) + implementation(libs.kotlin.css.jvm) + implementation(libs.simpleclient) + implementation(libs.simpleclient.httpserver) + implementation(libs.simpleclient.hotspot) + testImplementation(libs.ktor.server.tests) + testImplementation(libs.mockito.kotlin) + testImplementation(kotlin("test")) + testImplementation(kotlin("test-junit")) +} From 9eb8624863accec456b010c3a93e1c279c416cfe Mon Sep 17 00:00:00 2001 From: Jimly Asshiddiqy Date: Mon, 17 Feb 2025 09:56:21 +0700 Subject: [PATCH 2/2] Migrate to KSP --- build.gradle.kts | 2 +- gradle/libs.versions.toml | 17 +++++++++-------- uhabits-android/build.gradle.kts | 7 ++----- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7c0fafc5f..7816c1e66 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { alias(libs.plugins.agp) apply false alias(libs.plugins.kotlin.android) apply false - alias(libs.plugins.kotlin.kapt) apply false + alias(libs.plugins.ksp) apply false alias(libs.plugins.ktlint.plugin) apply false alias(libs.plugins.shadow) apply false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 39e86f1e8..d245535d6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.6.1" +agp = "8.8.0" annotation = "1.9.1" appcompat = "1.7.0" appintro = "6.3.1" @@ -21,6 +21,7 @@ konfetti-xml = "2.0.2" kotlin = "2.1.10" kotlin-css-jvm = "1.0.0-pre.148-kotlin-1.4.30" kotlinxCoroutinesCoreCommon = "1.3.8" +ksp = "2.1.10-1.0.30" ktlint-plugin = "11.6.1" ktor = "1.6.8" ktxCoroutine = "1.10.1" @@ -87,17 +88,17 @@ uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", versi [bundles] androidTest = [ - "espresso-contrib", - "espresso-core", + "annotation", "dagger", "dexmaker-mockito", + "espresso-contrib", + "espresso-core", + "junit", "ktor-client-mock", "ktor-jackson", - "annotation", - "junit", - "uiautomator", - "rules", "mockito-kotlin", + "rules", + "uiautomator" ] test = [ "dagger", @@ -108,6 +109,6 @@ test = [ [plugins] agp = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ktlint-plugin = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint-plugin" } shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } \ No newline at end of file diff --git a/uhabits-android/build.gradle.kts b/uhabits-android/build.gradle.kts index 41e2f666b..20ae36b66 100644 --- a/uhabits-android/build.gradle.kts +++ b/uhabits-android/build.gradle.kts @@ -20,7 +20,7 @@ plugins { alias(libs.plugins.agp) alias(libs.plugins.kotlin.android) - alias(libs.plugins.kotlin.kapt) + alias(libs.plugins.ksp) alias(libs.plugins.ktlint.plugin) } @@ -89,8 +89,6 @@ android { lint.abortOnError = false } -kapt.correctErrorTypes = true - dependencies { compileOnly(libs.jsr250.api) coreLibraryDesugaring(libs.desugar.jdk.libs) @@ -112,8 +110,7 @@ dependencies { implementation(libs.opencsv) implementation(libs.konfetti.xml) implementation(project(":uhabits-core")) - kapt(libs.dagger.compiler) - kaptAndroidTest(libs.dagger.compiler) + ksp(libs.dagger.compiler) androidTestImplementation(libs.bundles.androidTest) testImplementation(libs.bundles.test)