diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GenerateProjectStructureMetadata.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GenerateProjectStructureMetadata.kt index 842409a59d6..3765d77bb5d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GenerateProjectStructureMetadata.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GenerateProjectStructureMetadata.kt @@ -6,14 +6,19 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.DefaultTask +import org.gradle.api.file.ProjectLayout import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Nested import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.gradle.utils.notCompatibleWithConfigurationCache import java.io.File +import javax.inject.Inject -open class GenerateProjectStructureMetadata : DefaultTask() { +abstract class GenerateProjectStructureMetadata : DefaultTask() { + + @get:Inject + abstract internal val projectLayout: ProjectLayout @get:Internal internal lateinit var lazyKotlinProjectStructureMetadata: Lazy @@ -23,7 +28,10 @@ open class GenerateProjectStructureMetadata : DefaultTask() { get() = lazyKotlinProjectStructureMetadata.value @get:OutputFile - val resultFile: File = project.buildDir.resolve("kotlinProjectStructureMetadata/$MULTIPLATFORM_PROJECT_METADATA_JSON_FILE_NAME") + val resultFile: File + get() = projectLayout.buildDirectory.file( + "kotlinProjectStructureMetadata/$MULTIPLATFORM_PROJECT_METADATA_JSON_FILE_NAME" + ).get().asFile @TaskAction fun generateMetadataXml() {