override fun apply()

in BuildSrc/customizeAgpDslAndVariant/buildSrc/src/main/kotlin/ProviderPlugin.kt [24:51]


    override fun apply(project: Project) {
        val objects = project.getObjects();

        val android = project.extensions.getByType(ApplicationExtension::class.java)
        android.buildTypes.forEach {
            it.extensions.add(
                "exampleDsl",
                BuildTypeExtension::class.java)
        }


        val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java)
        androidComponents.beforeVariants { variantBuilder ->
            val variantExtension = objects.newInstance(VariantExtension::class.java)

            val debug = android.buildTypes.getByName(variantBuilder.name)
            val buildTypeExtension = debug.extensions.findByName("exampleDsl")
                as BuildTypeExtension
            variantExtension.parameters.set(
                buildTypeExtension.invocationParameters ?: ""
            )

            variantBuilder.registerExtension(
                VariantExtension::class.java,
                variantExtension
            )
        }
    }