From 873994545c0243dbdbfc5d092e7ebb22c88f4adf Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Tue, 10 Oct 2017 21:51:18 +0300 Subject: [PATCH] Clear Java srcDirs in JS and multiplatform projects. Issue #KT-20217 Fixed (cherry picked from commit a4f8a5e) --- .../org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 194a67c7565..80381dbb636 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -290,6 +290,8 @@ internal class Kotlin2JsSourceSetProcessor( kotlinTask.source(kotlinSourceSet.kotlin) createCleanSourceMapTask() + sourceSet.clearJavaSrcDirs() + // outputFile can be set later during the configuration phase, get it only after the phase: project.afterEvaluate { project -> val subpluginEnvironment: SubpluginEnvironment = loadSubplugins(project) @@ -342,6 +344,8 @@ internal class KotlinCommonSourceSetProcessor( compileTaskNameSuffix = "kotlinCommon" ) { override fun doTargetSpecificProcessing() { + sourceSet.clearJavaSrcDirs() + project.afterEvaluate { project -> kotlinTask.source(kotlinSourceSet.kotlin) project.tasks.findByName(sourceSet.classesTaskName).dependsOn(kotlinTask) @@ -709,6 +713,10 @@ internal fun createSyncOutputTask( return syncTask } +private fun SourceSet.clearJavaSrcDirs() { + java.setSrcDirs(emptyList()) +} + private val KOTLIN_ANNOTATION_PROCESSING_FILE_REGEX = "kotlin-annotation-processing-[\\-0-9A-Za-z.]+\\.jar".toRegex() private fun removeAnnotationProcessingPluginClasspathEntry(kotlinCompile: KotlinCompile) {