[Gradle, JS] Umbrella package json task

#KT-32466 fixed
#KT-36784 fixed
#KT-36864 fixed
This commit is contained in:
Ilya Goncharov
2020-03-26 12:21:11 +03:00
parent 63487c3836
commit c5c3f52b81
2 changed files with 9 additions and 2 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle.targets.js.npm.resolver
import org.gradle.api.Project
import org.gradle.api.Task
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatRootResolverPlugin
@@ -18,6 +19,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJsonUpToDateCheck
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.RootResolverPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
import org.jetbrains.kotlin.gradle.tasks.registerTask
/**
* See [KotlinNpmResolutionManager] for details about resolution process.
@@ -39,6 +41,7 @@ internal class KotlinRootNpmResolver internal constructor(
val gradleNodeModules = GradleNodeModulesCache(nodeJs)
val compositeNodeModules = CompositeNodeModulesCache(nodeJs)
val packageJsonUmbrella = rootProject.registerTask(PACKAGE_JSON_UMBRELLA_TASK_NAME, Task::class.java) {}
private val projectResolvers = mutableMapOf<Project, KotlinProjectNpmResolver>()
fun alreadyResolvedMessage(action: String) = "Cannot $action. NodeJS projects already resolved."
@@ -131,4 +134,6 @@ internal class KotlinRootNpmResolver internal constructor(
}
}
}
}
}
const val PACKAGE_JSON_UMBRELLA_TASK_NAME = "packageJsonUmbrella"
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
import org.jetbrains.kotlin.gradle.tasks.registerTask
import java.io.File
@@ -33,7 +34,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
producer.internalDependencies.map { dependentResolver ->
dependentResolver.npmProject.packageJsonTask
} + producer.internalCompositeDependencies.map { dependency ->
dependency.includedBuild.task(":packageJson")
dependency.includedBuild.task(":$PACKAGE_JSON_UMBRELLA_TASK_NAME")
}
@get:Nested
@@ -66,6 +67,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
task.dependsOn(target.project.provider { task.findDependentTasks() })
task.dependsOn(project.rootProject.tasks.named(PACKAGE_JSON_UMBRELLA_TASK_NAME))
task.mustRunAfter(rootClean)
}