From 7589d89a595a81f0eec9874bdc7b5e8dbcc77717 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Sun, 19 May 2019 13:04:45 +0300 Subject: [PATCH] Gradle, js: create run task only when project evaluated As it may be created after js target configuration by java application plugin --- .../kotlin/gradle/targets/js/KotlinJsTarget.kt | 10 +++++++++- .../gradle/targets/js/KotlinJsTargetConfigurator.kt | 4 ---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt index 56b259475b7..73f3070c037 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Compa import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget +import org.jetbrains.kotlin.gradle.plugin.whenEvaluated import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl @@ -31,7 +32,14 @@ class KotlinJsTarget(project: Project, platformType: KotlinPlatformType) : ) val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix) - val runTask get() = project.tasks.maybeCreate(runTaskName) + val runTask + get() = project.tasks.maybeCreate(runTaskName).also { + if (runTaskName != runTaskNameSuffix) { + project.whenEvaluated { + project.tasks.maybeCreate(runTaskNameSuffix).dependsOn(it) + } + } + } val browser by lazy { KotlinBrowserJs(this).also { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTargetConfigurator.kt index b46ecdc0fab..a7183812341 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTargetConfigurator.kt @@ -24,10 +24,6 @@ open class KotlinJsTargetConfigurator(kotlinPluginVersion: String) : target.compilations.forEach { it.compileKotlinTask.dependsOn(target.project.nodeJs.root.npmResolveTask) } - - if (target.disambiguationClassifier != null) { - target.project.tasks.maybeCreate(runTaskNameSuffix).dependsOn(target.runTask) - } } override fun configureTest(target: KotlinOnlyTarget) {