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
pull/1739/head
Jaehwa Noh 9 months ago
parent 3009cdf081
commit 18e35c27f6

@ -16,6 +16,7 @@
import com.android.build.api.dsl.ApplicationExtension import com.android.build.api.dsl.ApplicationExtension
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
import com.google.samples.apps.nowinandroid.implementation
import com.google.samples.apps.nowinandroid.libs import com.google.samples.apps.nowinandroid.libs
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
@ -34,9 +35,9 @@ class AndroidApplicationFirebaseConventionPlugin : Plugin<Project> {
dependencies { dependencies {
val bom = libs.findLibrary("firebase-bom").get() val bom = libs.findLibrary("firebase-bom").get()
add("implementation", platform(bom)) implementation(platform(bom))
"implementation"(libs.findLibrary("firebase.analytics").get()) implementation(libs.findLibrary("firebase.analytics").get())
"implementation"(libs.findLibrary("firebase.performance").get()) { implementation(libs.findLibrary("firebase.performance").get()) {
/* /*
Exclusion of protobuf / protolite dependencies is necessary as the Exclusion of protobuf / protolite dependencies is necessary as the
datastore-proto brings in protobuf dependencies. These are the source of truth datastore-proto brings in protobuf dependencies. These are the source of truth
@ -46,7 +47,7 @@ class AndroidApplicationFirebaseConventionPlugin : Plugin<Project> {
exclude(group = "com.google.protobuf", module = "protobuf-javalite") exclude(group = "com.google.protobuf", module = "protobuf-javalite")
exclude(group = "com.google.firebase", module = "protolite-well-known-types") exclude(group = "com.google.firebase", module = "protolite-well-known-types")
} }
"implementation"(libs.findLibrary("firebase.crashlytics").get()) implementation(libs.findLibrary("firebase.crashlytics").get())
} }
extensions.configure<ApplicationExtension> { extensions.configure<ApplicationExtension> {

@ -15,8 +15,11 @@
*/ */
import com.android.build.gradle.LibraryExtension 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.configureGradleManagedDevices
import com.google.samples.apps.nowinandroid.implementation
import com.google.samples.apps.nowinandroid.libs import com.google.samples.apps.nowinandroid.libs
import com.google.samples.apps.nowinandroid.testImplementation
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.configure
@ -36,18 +39,18 @@ class AndroidFeatureConventionPlugin : Plugin<Project> {
} }
dependencies { dependencies {
add("implementation", project(":core:ui")) implementation(project(":core:ui"))
add("implementation", project(":core:designsystem")) implementation(project(":core:designsystem"))
add("implementation", libs.findLibrary("androidx.hilt.navigation.compose").get()) implementation(libs.findLibrary("androidx.hilt.navigation.compose").get())
add("implementation", libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) implementation(libs.findLibrary("androidx.lifecycle.runtimeCompose").get())
add("implementation", libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) implementation(libs.findLibrary("androidx.lifecycle.viewModelCompose").get())
add("implementation", libs.findLibrary("androidx.navigation.compose").get()) implementation(libs.findLibrary("androidx.navigation.compose").get())
add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) implementation(libs.findLibrary("androidx.tracing.ktx").get())
add("implementation", libs.findLibrary("kotlinx.serialization.json").get()) implementation(libs.findLibrary("kotlinx.serialization.json").get())
add("testImplementation", libs.findLibrary("androidx.navigation.testing").get()) testImplementation(libs.findLibrary("androidx.navigation.testing").get())
add("androidTestImplementation", libs.findLibrary("androidx.lifecycle.runtimeTesting").get()) androidTestImplementation(libs.findLibrary("androidx.lifecycle.runtimeTesting").get())
} }
} }
} }

@ -16,12 +16,15 @@
import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.api.variant.LibraryAndroidComponentsExtension
import com.android.build.gradle.LibraryExtension 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.configureFlavors
import com.google.samples.apps.nowinandroid.configureGradleManagedDevices import com.google.samples.apps.nowinandroid.configureGradleManagedDevices
import com.google.samples.apps.nowinandroid.configureKotlinAndroid import com.google.samples.apps.nowinandroid.configureKotlinAndroid
import com.google.samples.apps.nowinandroid.configurePrintApksTask import com.google.samples.apps.nowinandroid.configurePrintApksTask
import com.google.samples.apps.nowinandroid.disableUnnecessaryAndroidTests 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.libs
import com.google.samples.apps.nowinandroid.testImplementation
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.configure
@ -53,10 +56,10 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
disableUnnecessaryAndroidTests(target) disableUnnecessaryAndroidTests(target)
} }
dependencies { dependencies {
add("androidTestImplementation", libs.findLibrary("kotlin.test").get()) androidTestImplementation(libs.findLibrary("kotlin.test").get())
add("testImplementation", 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())
} }
} }
} }

@ -16,6 +16,8 @@
import androidx.room.gradle.RoomExtension import androidx.room.gradle.RoomExtension
import com.google.devtools.ksp.gradle.KspExtension 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 com.google.samples.apps.nowinandroid.libs
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
@ -41,10 +43,10 @@ class AndroidRoomConventionPlugin : Plugin<Project> {
} }
dependencies { dependencies {
add("implementation", libs.findLibrary("room.runtime").get()) implementation(libs.findLibrary("room.runtime").get())
add("implementation", libs.findLibrary("room.ktx").get()) implementation(libs.findLibrary("room.ktx").get())
add("ksp", libs.findLibrary("room.compiler").get()) ksp(libs.findLibrary("room.compiler").get())
} }
} }
} }
} }

@ -15,6 +15,8 @@
*/ */
import com.android.build.gradle.api.AndroidBasePlugin 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 com.google.samples.apps.nowinandroid.libs
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
@ -25,13 +27,13 @@ class HiltConventionPlugin : Plugin<Project> {
with(target) { with(target) {
pluginManager.apply("com.google.devtools.ksp") pluginManager.apply("com.google.devtools.ksp")
dependencies { 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 // Add support for Jvm Module, base on org.jetbrains.kotlin.jvm
pluginManager.withPlugin("org.jetbrains.kotlin.jvm") { pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
dependencies { dependencies {
add("implementation", libs.findLibrary("hilt.core").get()) implementation(libs.findLibrary("hilt.core").get())
} }
} }
@ -39,7 +41,7 @@ class HiltConventionPlugin : Plugin<Project> {
pluginManager.withPlugin("com.android.base") { pluginManager.withPlugin("com.android.base") {
pluginManager.apply("dagger.hilt.android.plugin") pluginManager.apply("dagger.hilt.android.plugin")
dependencies { dependencies {
add("implementation", libs.findLibrary("hilt.android").get()) implementation(libs.findLibrary("hilt.android").get())
} }
} }
} }

@ -16,6 +16,7 @@
import com.google.samples.apps.nowinandroid.configureKotlinJvm import com.google.samples.apps.nowinandroid.configureKotlinJvm
import com.google.samples.apps.nowinandroid.libs import com.google.samples.apps.nowinandroid.libs
import com.google.samples.apps.nowinandroid.testImplementation
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.dependencies
@ -30,7 +31,7 @@ class JvmLibraryConventionPlugin : Plugin<Project> {
} }
configureKotlinJvm() configureKotlinJvm()
dependencies { dependencies {
add("testImplementation", libs.findLibrary("kotlin.test").get()) testImplementation(libs.findLibrary("kotlin.test").get())
} }
} }
} }

@ -37,10 +37,10 @@ internal fun Project.configureAndroidCompose(
dependencies { dependencies {
val bom = libs.findLibrary("androidx-compose-bom").get() val bom = libs.findLibrary("androidx-compose-bom").get()
add("implementation", platform(bom)) implementation(platform(bom))
add("androidTestImplementation", platform(bom)) androidTestImplementation(platform(bom))
add("implementation", libs.findLibrary("androidx-compose-ui-tooling-preview").get()) implementation(libs.findLibrary("androidx-compose-ui-tooling-preview").get())
add("debugImplementation", libs.findLibrary("androidx-compose-ui-tooling").get()) debugImplementation(libs.findLibrary("androidx-compose-ui-tooling").get())
} }
testOptions { testOptions {

@ -54,7 +54,7 @@ internal fun Project.configureKotlinAndroid(
configureKotlin<KotlinAndroidProjectExtension>() configureKotlin<KotlinAndroidProjectExtension>()
dependencies { dependencies {
add("coreLibraryDesugaring", libs.findLibrary("android.desugarJdkLibs").get()) coreLibraryDesugaring(libs.findLibrary("android.desugarJdkLibs").get())
} }
} }

Loading…
Cancel
Save