Skip to content

Commit 21c14ef

Browse files
authored
Merge pull request #1784 from Jaehwa-Noh/kotlin-dsl-withou-type-safe-plugin
Follow kotlin dsl without type-safe documentation on plugins
2 parents 570039c + 85cc292 commit 21c14ef

11 files changed

+46
-41
lines changed

build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,17 @@ import com.google.samples.apps.nowinandroid.configureKotlinAndroid
2323
import com.google.samples.apps.nowinandroid.configurePrintApksTask
2424
import org.gradle.api.Plugin
2525
import org.gradle.api.Project
26+
import org.gradle.kotlin.dsl.apply
2627
import org.gradle.kotlin.dsl.configure
2728
import org.gradle.kotlin.dsl.getByType
2829

2930
class AndroidApplicationConventionPlugin : Plugin<Project> {
3031
override fun apply(target: Project) {
3132
with(target) {
32-
with(pluginManager) {
33-
apply("com.android.application")
34-
apply("org.jetbrains.kotlin.android")
35-
apply("nowinandroid.android.lint")
36-
apply("com.dropbox.dependency-guard")
37-
}
33+
apply(plugin = "com.android.application")
34+
apply(plugin = "org.jetbrains.kotlin.android")
35+
apply(plugin = "nowinandroid.android.lint")
36+
apply(plugin = "com.dropbox.dependency-guard")
3837

3938
extensions.configure<ApplicationExtension> {
4039
configureKotlinAndroid(this)
@@ -49,5 +48,4 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
4948
}
5049
}
5150
}
52-
5351
}

build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
1919
import com.google.samples.apps.nowinandroid.libs
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.configure
2324
import org.gradle.kotlin.dsl.dependencies
2425
import org.gradle.kotlin.dsl.exclude
2526

2627
class AndroidApplicationFirebaseConventionPlugin : Plugin<Project> {
2728
override fun apply(target: Project) {
2829
with(target) {
29-
with(pluginManager) {
30-
apply("com.google.gms.google-services")
31-
apply("com.google.firebase.firebase-perf")
32-
apply("com.google.firebase.crashlytics")
33-
}
30+
apply(plugin = "com.google.gms.google-services")
31+
apply(plugin = "com.google.firebase.firebase-perf")
32+
apply(plugin = "com.google.firebase.crashlytics")
3433

3534
dependencies {
3635
val bom = libs.findLibrary("firebase-bom").get()

build-logic/convention/src/main/kotlin/AndroidApplicationJacocoConventionPlugin.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import com.android.build.api.variant.ApplicationAndroidComponentsExtension
1919
import com.google.samples.apps.nowinandroid.configureJacoco
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.getByType
2324

2425
class AndroidApplicationJacocoConventionPlugin : Plugin<Project> {
2526
override fun apply(target: Project) {
2627
with(target) {
27-
pluginManager.apply("jacoco")
28+
apply(plugin = "jacoco")
29+
2830
val androidExtension = extensions.getByType<ApplicationExtension>()
2931

3032
androidExtension.buildTypes.configureEach {

build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ import com.google.samples.apps.nowinandroid.configureGradleManagedDevices
1919
import com.google.samples.apps.nowinandroid.libs
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.configure
2324
import org.gradle.kotlin.dsl.dependencies
2425

2526
class AndroidFeatureConventionPlugin : Plugin<Project> {
2627
override fun apply(target: Project) {
2728
with(target) {
28-
pluginManager.apply {
29-
apply("nowinandroid.android.library")
30-
apply("nowinandroid.hilt")
31-
apply("org.jetbrains.kotlin.plugin.serialization")
32-
}
29+
apply(plugin = "nowinandroid.android.library")
30+
apply(plugin = "nowinandroid.hilt")
31+
apply(plugin = "org.jetbrains.kotlin.plugin.serialization")
32+
3333
extensions.configure<LibraryExtension> {
3434
testOptions.animationsDisabled = true
3535
configureGradleManagedDevices(this)
@@ -47,7 +47,9 @@ class AndroidFeatureConventionPlugin : Plugin<Project> {
4747
"implementation"(libs.findLibrary("kotlinx.serialization.json").get())
4848

4949
"testImplementation"(libs.findLibrary("androidx.navigation.testing").get())
50-
"androidTestImplementation"(libs.findLibrary("androidx.lifecycle.runtimeTesting").get())
50+
"androidTestImplementation"(
51+
libs.findLibrary("androidx.lifecycle.runtimeTesting").get(),
52+
)
5153
}
5254
}
5355
}

build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,16 @@ import com.google.samples.apps.nowinandroid.disableUnnecessaryAndroidTests
2424
import com.google.samples.apps.nowinandroid.libs
2525
import org.gradle.api.Plugin
2626
import org.gradle.api.Project
27+
import org.gradle.kotlin.dsl.apply
2728
import org.gradle.kotlin.dsl.configure
2829
import org.gradle.kotlin.dsl.dependencies
2930

3031
class AndroidLibraryConventionPlugin : Plugin<Project> {
3132
override fun apply(target: Project) {
3233
with(target) {
33-
with(pluginManager) {
34-
apply("com.android.library")
35-
apply("org.jetbrains.kotlin.android")
36-
apply("nowinandroid.android.lint")
37-
}
34+
apply(plugin = "com.android.library")
35+
apply(plugin = "org.jetbrains.kotlin.android")
36+
apply(plugin = "nowinandroid.android.lint")
3837

3938
extensions.configure<LibraryExtension> {
4039
configureKotlinAndroid(this)
@@ -45,7 +44,9 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
4544
configureGradleManagedDevices(this)
4645
// The resource prefix is derived from the module name,
4746
// so resources inside ":core:module1" must be prefixed with "core_module1_"
48-
resourcePrefix = path.split("""\W""".toRegex()).drop(1).distinct().joinToString(separator = "_").lowercase() + "_"
47+
resourcePrefix =
48+
path.split("""\W""".toRegex()).drop(1).distinct().joinToString(separator = "_")
49+
.lowercase() + "_"
4950
}
5051
extensions.configure<LibraryAndroidComponentsExtension> {
5152
configurePrintApksTask(this)

build-logic/convention/src/main/kotlin/AndroidLibraryJacocoConventionPlugin.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@
1515
*/
1616

1717
import com.android.build.api.dsl.LibraryExtension
18-
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
1918
import com.android.build.api.variant.LibraryAndroidComponentsExtension
2019
import com.google.samples.apps.nowinandroid.configureJacoco
2120
import org.gradle.api.Plugin
2221
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2323
import org.gradle.kotlin.dsl.getByType
2424

2525
class AndroidLibraryJacocoConventionPlugin : Plugin<Project> {
2626
override fun apply(target: Project) {
2727
with(target) {
28-
pluginManager.apply("jacoco")
28+
apply(plugin = "jacoco")
29+
2930
val androidExtension = extensions.getByType<LibraryExtension>()
3031

3132
androidExtension.buildTypes.configureEach {

build-logic/convention/src/main/kotlin/AndroidLintConventionPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import com.android.build.api.dsl.LibraryExtension
1919
import com.android.build.api.dsl.Lint
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.configure
2324

2425
class AndroidLintConventionPlugin : Plugin<Project> {
@@ -32,7 +33,7 @@ class AndroidLintConventionPlugin : Plugin<Project> {
3233
configure<LibraryExtension> { lint(Lint::configure) }
3334

3435
else -> {
35-
pluginManager.apply("com.android.lint")
36+
apply(plugin = "com.android.lint")
3637
configure<Lint>(Lint::configure)
3738
}
3839
}

build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@ import com.google.devtools.ksp.gradle.KspExtension
1919
import com.google.samples.apps.nowinandroid.libs
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.configure
2324
import org.gradle.kotlin.dsl.dependencies
2425

2526
class AndroidRoomConventionPlugin : Plugin<Project> {
2627

2728
override fun apply(target: Project) {
2829
with(target) {
29-
pluginManager.apply("androidx.room")
30-
pluginManager.apply("com.google.devtools.ksp")
30+
apply(plugin = "androidx.room")
31+
apply(plugin = "com.google.devtools.ksp")
3132

3233
extensions.configure<KspExtension> {
3334
arg("room.generateKotlin", "true")

build-logic/convention/src/main/kotlin/AndroidTestConventionPlugin.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@ import com.google.samples.apps.nowinandroid.configureGradleManagedDevices
1919
import com.google.samples.apps.nowinandroid.configureKotlinAndroid
2020
import org.gradle.api.Plugin
2121
import org.gradle.api.Project
22+
import org.gradle.kotlin.dsl.apply
2223
import org.gradle.kotlin.dsl.configure
2324

2425
class AndroidTestConventionPlugin : Plugin<Project> {
2526
override fun apply(target: Project) {
2627
with(target) {
27-
with(pluginManager) {
28-
apply("com.android.test")
29-
apply("org.jetbrains.kotlin.android")
30-
}
28+
apply(plugin = "com.android.test")
29+
apply(plugin = "org.jetbrains.kotlin.android")
3130

3231
extensions.configure<TestExtension> {
3332
configureKotlinAndroid(this)
@@ -36,5 +35,4 @@ class AndroidTestConventionPlugin : Plugin<Project> {
3635
}
3736
}
3837
}
39-
4038
}

build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ import com.android.build.gradle.api.AndroidBasePlugin
1818
import com.google.samples.apps.nowinandroid.libs
1919
import org.gradle.api.Plugin
2020
import org.gradle.api.Project
21+
import org.gradle.kotlin.dsl.apply
2122
import org.gradle.kotlin.dsl.dependencies
2223

2324
class HiltConventionPlugin : Plugin<Project> {
2425
override fun apply(target: Project) {
2526
with(target) {
26-
pluginManager.apply("com.google.devtools.ksp")
27+
apply(plugin = "com.google.devtools.ksp")
28+
2729
dependencies {
2830
"ksp"(libs.findLibrary("hilt.compiler").get())
2931
}
@@ -37,7 +39,7 @@ class HiltConventionPlugin : Plugin<Project> {
3739

3840
/** Add support for Android modules, based on [AndroidBasePlugin] */
3941
pluginManager.withPlugin("com.android.base") {
40-
pluginManager.apply("dagger.hilt.android.plugin")
42+
apply(plugin = "dagger.hilt.android.plugin")
4143
dependencies {
4244
"implementation"(libs.findLibrary("hilt.android").get())
4345
}

0 commit comments

Comments
 (0)