[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
|
package org.jetbrains.kotlin.gradle.targets.js.npm.resolver
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.Task
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatRootResolverPlugin
|
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.plugins.RootResolverPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution
|
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.targets.js.npm.resolved.KotlinRootNpmResolution
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See [KotlinNpmResolutionManager] for details about resolution process.
|
* See [KotlinNpmResolutionManager] for details about resolution process.
|
||||||
@@ -39,6 +41,7 @@ internal class KotlinRootNpmResolver internal constructor(
|
|||||||
|
|
||||||
val gradleNodeModules = GradleNodeModulesCache(nodeJs)
|
val gradleNodeModules = GradleNodeModulesCache(nodeJs)
|
||||||
val compositeNodeModules = CompositeNodeModulesCache(nodeJs)
|
val compositeNodeModules = CompositeNodeModulesCache(nodeJs)
|
||||||
|
val packageJsonUmbrella = rootProject.registerTask(PACKAGE_JSON_UMBRELLA_TASK_NAME, Task::class.java) {}
|
||||||
private val projectResolvers = mutableMapOf<Project, KotlinProjectNpmResolver>()
|
private val projectResolvers = mutableMapOf<Project, KotlinProjectNpmResolver>()
|
||||||
|
|
||||||
fun alreadyResolvedMessage(action: String) = "Cannot $action. NodeJS projects already resolved."
|
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.nodejs.NodeJsRootPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
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.KotlinCompilationNpmResolver
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
|
||||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
|
|||||||
producer.internalDependencies.map { dependentResolver ->
|
producer.internalDependencies.map { dependentResolver ->
|
||||||
dependentResolver.npmProject.packageJsonTask
|
dependentResolver.npmProject.packageJsonTask
|
||||||
} + producer.internalCompositeDependencies.map { dependency ->
|
} + producer.internalCompositeDependencies.map { dependency ->
|
||||||
dependency.includedBuild.task(":packageJson")
|
dependency.includedBuild.task(":$PACKAGE_JSON_UMBRELLA_TASK_NAME")
|
||||||
}
|
}
|
||||||
|
|
||||||
@get:Nested
|
@get:Nested
|
||||||
@@ -66,6 +67,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
|
|||||||
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
|
task.group = NodeJsRootPlugin.TASKS_GROUP_NAME
|
||||||
|
|
||||||
task.dependsOn(target.project.provider { task.findDependentTasks() })
|
task.dependsOn(target.project.provider { task.findDependentTasks() })
|
||||||
|
task.dependsOn(project.rootProject.tasks.named(PACKAGE_JSON_UMBRELLA_TASK_NAME))
|
||||||
task.mustRunAfter(rootClean)
|
task.mustRunAfter(rootClean)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user