override fun apply()

in plugins/src/main/java/com/google/gradle/plugins/ReleasePlugin.kt [55:96]


  override fun apply(project: Project) {
    with(project) {
      val buildApi = tasks.named<BuildApiTask>("buildApi")
      val makeReleaseNotes = tasks.named<MakeReleaseNotesTask>("makeReleaseNotes")
      val deleteChangeFiles = tasks.named<Delete>("deleteChangeFiles")

      val releaseNotes = makeReleaseNotes.flatMap { it.outputFile }
      val releasingVersion = releaseNotes.map { parseReleaseVersion(it.asFile, moduleVersion) }

      val updateVersion =
        tasks.register<VersionBumpTask>("updateVersion") {
          dependsOn(makeReleaseNotes)

          newVersion.set(releasingVersion)
        }

      val createNewApiFile =
        tasks.register<CopyFileTask>("createNewApiFile") {
          dependsOn(makeReleaseNotes)

          val releasingFile =
            releasingVersion.flatMap { rootProject.layout.file("api/${project.name}/$it.api") }

          source.set(buildApi.regularOutputFile)
          dest.set(releasingFile)
        }

      tasks.register("prepareRelease") {
        group = "publishing"

        dependsOn(makeReleaseNotes, updateVersion, createNewApiFile)
        finalizedBy(deleteChangeFiles)
      }

      tasks.register("release") {
        group = "publishing"

        dependsOn("publishReleasePublicationToMavenRepository")
        dependsOn("publishReleasePublicationToMavenLocal")
      }
    }
  }