From fdf702065af6b77651bd7e3ae60c022f0d28879b Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 14 Dec 2024 21:13:26 +0900 Subject: [PATCH] Followed Kotlin DSL without type-safe accessors. https://docs.gradle.org/current/userguide/kotlin_dsl.html#ex-configuring-plugins-without-type-safe-accessors Change-Id: Id711ad25146e291cbae40a5df4251f0ffef7b0a6 --- ...roidApplicationFirebaseConventionPlugin.kt | 9 ++++---- .../kotlin/AndroidFeatureConventionPlugin.kt | 23 +++++++++++-------- .../kotlin/AndroidLibraryConventionPlugin.kt | 9 +++++--- .../kotlin/AndroidRoomConventionPlugin.kt | 10 ++++---- .../src/main/kotlin/HiltConventionPlugin.kt | 8 ++++--- .../main/kotlin/JvmLibraryConventionPlugin.kt | 3 ++- .../apps/nowinandroid/AndroidCompose.kt | 8 +++---- .../apps/nowinandroid/KotlinAndroid.kt | 2 +- 8 files changed, 42 insertions(+), 30 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt index a5e001bd2..9abc693a5 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt @@ -16,6 +16,7 @@ import com.android.build.api.dsl.ApplicationExtension import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension +import com.google.samples.apps.nowinandroid.implementation import com.google.samples.apps.nowinandroid.libs import org.gradle.api.Plugin import org.gradle.api.Project @@ -34,9 +35,9 @@ class AndroidApplicationFirebaseConventionPlugin : Plugin { dependencies { val bom = libs.findLibrary("firebase-bom").get() - add("implementation", platform(bom)) - "implementation"(libs.findLibrary("firebase.analytics").get()) - "implementation"(libs.findLibrary("firebase.performance").get()) { + implementation(platform(bom)) + implementation(libs.findLibrary("firebase.analytics").get()) + implementation(libs.findLibrary("firebase.performance").get()) { /* Exclusion of protobuf / protolite dependencies is necessary as the datastore-proto brings in protobuf dependencies. These are the source of truth @@ -46,7 +47,7 @@ class AndroidApplicationFirebaseConventionPlugin : Plugin { exclude(group = "com.google.protobuf", module = "protobuf-javalite") exclude(group = "com.google.firebase", module = "protolite-well-known-types") } - "implementation"(libs.findLibrary("firebase.crashlytics").get()) + implementation(libs.findLibrary("firebase.crashlytics").get()) } extensions.configure { diff --git a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt index 6d0f213d4..03b8bc296 100644 --- a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt @@ -15,8 +15,11 @@ */ import com.android.build.gradle.LibraryExtension +import com.google.samples.apps.nowinandroid.androidTestImplementation import com.google.samples.apps.nowinandroid.configureGradleManagedDevices +import com.google.samples.apps.nowinandroid.implementation import com.google.samples.apps.nowinandroid.libs +import com.google.samples.apps.nowinandroid.testImplementation import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -36,18 +39,18 @@ class AndroidFeatureConventionPlugin : Plugin { } dependencies { - add("implementation", project(":core:ui")) - add("implementation", project(":core:designsystem")) + implementation(project(":core:ui")) + implementation(project(":core:designsystem")) - add("implementation", libs.findLibrary("androidx.hilt.navigation.compose").get()) - add("implementation", libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) - add("implementation", libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) - add("implementation", libs.findLibrary("androidx.navigation.compose").get()) - add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) - add("implementation", libs.findLibrary("kotlinx.serialization.json").get()) + implementation(libs.findLibrary("androidx.hilt.navigation.compose").get()) + implementation(libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) + implementation(libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) + implementation(libs.findLibrary("androidx.navigation.compose").get()) + implementation(libs.findLibrary("androidx.tracing.ktx").get()) + implementation(libs.findLibrary("kotlinx.serialization.json").get()) - add("testImplementation", libs.findLibrary("androidx.navigation.testing").get()) - add("androidTestImplementation", libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) + testImplementation(libs.findLibrary("androidx.navigation.testing").get()) + androidTestImplementation(libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) } } } diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index 2a10901fb..7e2a88b88 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -16,12 +16,15 @@ import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.gradle.LibraryExtension +import com.google.samples.apps.nowinandroid.androidTestImplementation import com.google.samples.apps.nowinandroid.configureFlavors import com.google.samples.apps.nowinandroid.configureGradleManagedDevices import com.google.samples.apps.nowinandroid.configureKotlinAndroid import com.google.samples.apps.nowinandroid.configurePrintApksTask import com.google.samples.apps.nowinandroid.disableUnnecessaryAndroidTests +import com.google.samples.apps.nowinandroid.implementation import com.google.samples.apps.nowinandroid.libs +import com.google.samples.apps.nowinandroid.testImplementation import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -53,10 +56,10 @@ class AndroidLibraryConventionPlugin : Plugin { disableUnnecessaryAndroidTests(target) } dependencies { - add("androidTestImplementation", libs.findLibrary("kotlin.test").get()) - add("testImplementation", libs.findLibrary("kotlin.test").get()) + androidTestImplementation(libs.findLibrary("kotlin.test").get()) + testImplementation(libs.findLibrary("kotlin.test").get()) - add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) + implementation(libs.findLibrary("androidx.tracing.ktx").get()) } } } diff --git a/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt index dbca79a5e..5ce0fc286 100644 --- a/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt @@ -16,6 +16,8 @@ import androidx.room.gradle.RoomExtension import com.google.devtools.ksp.gradle.KspExtension +import com.google.samples.apps.nowinandroid.implementation +import com.google.samples.apps.nowinandroid.ksp import com.google.samples.apps.nowinandroid.libs import org.gradle.api.Plugin import org.gradle.api.Project @@ -41,10 +43,10 @@ class AndroidRoomConventionPlugin : Plugin { } dependencies { - add("implementation", libs.findLibrary("room.runtime").get()) - add("implementation", libs.findLibrary("room.ktx").get()) - add("ksp", libs.findLibrary("room.compiler").get()) + implementation(libs.findLibrary("room.runtime").get()) + implementation(libs.findLibrary("room.ktx").get()) + ksp(libs.findLibrary("room.compiler").get()) } } } -} \ No newline at end of file +} diff --git a/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt b/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt index f49366f75..304cd93ea 100644 --- a/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt @@ -15,6 +15,8 @@ */ import com.android.build.gradle.api.AndroidBasePlugin +import com.google.samples.apps.nowinandroid.implementation +import com.google.samples.apps.nowinandroid.ksp import com.google.samples.apps.nowinandroid.libs import org.gradle.api.Plugin import org.gradle.api.Project @@ -25,13 +27,13 @@ class HiltConventionPlugin : Plugin { with(target) { pluginManager.apply("com.google.devtools.ksp") dependencies { - add("ksp", libs.findLibrary("hilt.compiler").get()) + ksp(libs.findLibrary("hilt.compiler").get()) } // Add support for Jvm Module, base on org.jetbrains.kotlin.jvm pluginManager.withPlugin("org.jetbrains.kotlin.jvm") { dependencies { - add("implementation", libs.findLibrary("hilt.core").get()) + implementation(libs.findLibrary("hilt.core").get()) } } @@ -39,7 +41,7 @@ class HiltConventionPlugin : Plugin { pluginManager.withPlugin("com.android.base") { pluginManager.apply("dagger.hilt.android.plugin") dependencies { - add("implementation", libs.findLibrary("hilt.android").get()) + implementation(libs.findLibrary("hilt.android").get()) } } } diff --git a/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt index afe47eeee..4739d434e 100644 --- a/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt @@ -16,6 +16,7 @@ import com.google.samples.apps.nowinandroid.configureKotlinJvm import com.google.samples.apps.nowinandroid.libs +import com.google.samples.apps.nowinandroid.testImplementation import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.dependencies @@ -30,7 +31,7 @@ class JvmLibraryConventionPlugin : Plugin { } configureKotlinJvm() dependencies { - add("testImplementation", libs.findLibrary("kotlin.test").get()) + testImplementation(libs.findLibrary("kotlin.test").get()) } } } diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt index ffb6358c3..8189aee5c 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt @@ -37,10 +37,10 @@ internal fun Project.configureAndroidCompose( dependencies { val bom = libs.findLibrary("androidx-compose-bom").get() - add("implementation", platform(bom)) - add("androidTestImplementation", platform(bom)) - add("implementation", libs.findLibrary("androidx-compose-ui-tooling-preview").get()) - add("debugImplementation", libs.findLibrary("androidx-compose-ui-tooling").get()) + implementation(platform(bom)) + androidTestImplementation(platform(bom)) + implementation(libs.findLibrary("androidx-compose-ui-tooling-preview").get()) + debugImplementation(libs.findLibrary("androidx-compose-ui-tooling").get()) } testOptions { diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt index 57f026029..cb97db6be 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt @@ -54,7 +54,7 @@ internal fun Project.configureKotlinAndroid( configureKotlin() dependencies { - add("coreLibraryDesugaring", libs.findLibrary("android.desugarJdkLibs").get()) + coreLibraryDesugaring(libs.findLibrary("android.desugarJdkLibs").get()) } }