Gradle Management: Android Library Convention Plugin - devrath/RunTracer GitHub Wiki

  • We can replace the library module to reflect as below
plugins {
    alias(libs.plugins.runtracer.android.library)
}

android {
    namespace = "com.istudio.run.network"
}

dependencies {
    implementation(projects.core.domain)
    implementation(projects.core.data)
}
  • Define AndroidLibraryConventionPlugin
class AndroidLibraryConventionPlugin : Plugin<Project> {

    override fun apply(target: Project) {
        target.run {
            pluginManager.run {
                apply("com.android.library")
                apply("org.jetbrains.kotlin.android")
            }

            extensions.configure<LibraryExtension> {
                configureKotlinAndroid(this)

                configureBuildTypes(
                    commonExtension = this,
                    extensionType = ExtensionType.LIBRARY,
                    providers = providers
                )

                defaultConfig {
                    testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
                    consumerProguardFiles("consumer-rules.pro")
                }
            }

            dependencies {
                "testImplementation"(kotlin("test"))
            }
        }
    }
}
  • Register in build-logic level build gradle
// Other Code

gradlePlugin {
    plugins {
        // Other Code
        register("androidLibrary") {
            id = "runtracer.android.library"
            implementationClass = "AndroidLibraryConventionPlugin"
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️