Gradle, js: create run task only when project evaluated

As it may be created after js target configuration by java application plugin
This commit is contained in:
Sergey Rostov
2019-05-19 13:04:45 +03:00
parent 15e0d6af92
commit 7589d89a59
2 changed files with 9 additions and 5 deletions
@@ -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 {
@@ -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<KotlinJsCompilation>) {