From d08402a00cea6ff57b166dcf25ece12fc2a94f92 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Tue, 14 May 2019 11:14:01 +0300 Subject: [PATCH] Gradle, js: fix requiredDependencies resolve --- .../gradle/targets/js/npm/NpmResolver.kt | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt index 2b75031c0dd..6f9e1bcc3fe 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt @@ -9,7 +9,7 @@ import com.google.gson.Gson import com.google.gson.GsonBuilder import org.gradle.api.Project import org.gradle.api.artifacts.Configuration -import org.gradle.api.execution.TaskExecutionGraph +import org.gradle.api.artifacts.Dependency import org.gradle.api.file.CopySpec import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension @@ -87,13 +87,6 @@ internal class NpmResolver private constructor(val rootProject: Project) { private val gson = GsonBuilder() .setPrettyPrinting() .create() - private val readyTaskGraph: TaskExecutionGraph? - - init { - var readyTaskGraph: TaskExecutionGraph? = null - rootProject.gradle.taskGraph.whenReady { readyTaskGraph = it } - this.readyTaskGraph = readyTaskGraph - } class ProjectData(var resolved: ResolvedProject? = null) { companion object { @@ -217,28 +210,23 @@ internal class NpmResolver private constructor(val rootProject: Project) { npmDependencies: MutableSet, gradleComponents: GradleNodeModulesBuilder ) { - var toolsDependenciesConfiguration: Configuration? = project.configurations.create("jsTools") + val requiredDependencies = mutableListOf() project.tasks.toList().forEach { task -> - if (task is RequiresNpmDependencies) { - if (readyTaskGraph?.hasTask(task) ?: task.enabled) { - val list = task.requiredNpmDependencies.toList() + if (task.enabled && task is RequiresNpmDependencies) { + val list = task.requiredNpmDependencies.toList() - requiredByTasks[task] = list - list.forEach { requiredDependency -> - val configuration: Configuration = toolsDependenciesConfiguration - ?: project.configurations.create("jsTools").also { new -> - toolsDependenciesConfiguration = new - } - - configuration.dependencies.add(requiredDependency.createDependency(project)) - } + requiredByTasks[task] = list + list.forEach { requiredDependency -> + requiredDependencies.add(requiredDependency.createDependency(project)) } } } - if (toolsDependenciesConfiguration != null) { - visitConfiguration(toolsDependenciesConfiguration!!, npmDependencies, gradleComponents) + if (requiredDependencies.isNotEmpty()) { + val configuration = project.configurations.create("jsTools") + configuration.resolve() + visitConfiguration(configuration, npmDependencies, gradleComponents) } }