From ee0b64cb29c710251045a5e181e48be37dff4f63 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Thu, 5 Aug 2021 11:35:12 +0200 Subject: [PATCH] [Gradle] BuildKotlinToolingMetadataTask: Ensure clean output directory This is done to prevent unwanted files from also being located in the output directory. If the task is executed it is expected that the output directory only contains this one file. This is necessary, since *everything* located in the output directory will potentially be bundled into release apks. ^KT-48019 --- .../kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt index 56cddaec1e7..d24b90e70c6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt @@ -57,7 +57,7 @@ abstract class BuildKotlinToolingMetadataTask : DefaultTask() { @get:OutputDirectory val outputDirectory: File = project.buildDir.resolve("kotlinToolingMetadata") - @get:OutputFile + @get:Internal /* Covered by 'outputDirectory' */ val outputFile: File = outputDirectory.resolve("kotlin-tooling-metadata.json") @get:Internal @@ -71,7 +71,10 @@ abstract class BuildKotlinToolingMetadataTask : DefaultTask() { @TaskAction internal fun createToolingMetadataFile() { + /* Ensure output directory exists and is empty */ outputDirectory.mkdirs() + outputDirectory.listFiles().orEmpty().forEach { file -> file.deleteRecursively() } + outputFile.writeText(kotlinToolingMetadataJson) } }