[Gradle, JS] Umbrella package json task
#KT-32466 fixed #KT-36784 fixed #KT-36864 fixed
This commit is contained in:
+6
-1
@@ -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"
|
||||
+3
-1
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user