override fun apply()

in BuildSrc/manifestReplacementTest/buildSrc/src/main/kotlin/ExamplePlugin.kt [24:50]


    override fun apply(project: Project) {
        val gitVersionProvider =
            project.tasks.register("gitVersionProvider", GitVersionTask::class.java) {
                it.gitVersionOutputFile.set(
                    File(project.buildDir, "intermediates/gitVersionProvider/output")
                )
                it.outputs.upToDateWhen { false }
            }

        val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java)

        androidComponents.onVariants { variant ->

            val manifestProducer =
                project.tasks.register(variant.name + "ManifestProducer", ManifestProducerTask::class.java) {
                    it.gitInfoFile.set(gitVersionProvider.flatMap(GitVersionTask::gitVersionOutputFile))
                }
            variant.artifacts.use(manifestProducer)
                .wiredWith(ManifestProducerTask::outputManifest)
                .toCreate(SingleArtifact.MERGED_MANIFEST)

            project.tasks.register(variant.name + "Verifier", VerifyManifestTask::class.java) {
                it.apkFolder.set(variant.artifacts.get(SingleArtifact.APK))
                it.builtArtifactsLoader.set(variant.artifacts.getBuiltArtifactsLoader())
            }
        }
    }