Gradle, js: rename objects to avoid clashing with moowork nodejs plugin

#KT-31834 Fixed
This commit is contained in:
Sergey Rostov
2019-06-06 10:27:57 +03:00
parent b5515a31eb
commit 45d4a9d67c
6 changed files with 26 additions and 23 deletions
@@ -4,7 +4,7 @@ import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.BasePlugin
import org.gradle.api.tasks.Delete
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Companion.NODE_JS
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Companion.EXTENSION_NAME
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolveTask
open class NodeJsPlugin : Plugin<Project> {
@@ -13,31 +13,37 @@ open class NodeJsPlugin : Plugin<Project> {
"NodeJsPlugin can be applied only to root project"
}
this.extensions.create(NODE_JS, NodeJsRootExtension::class.java, this)
this.extensions.create(EXTENSION_NAME, NodeJsRootExtension::class.java, this)
val setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java)
val npmResolveTask = tasks.create(NpmResolveTask.NAME, NpmResolveTask::class.java)
npmResolveTask.outputs.upToDateWhen { false }
val setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java) {
it.group = TASKS_GROUP_NAME
it.description = "Download and install a local node/npm version"
}
npmResolveTask.dependsOn(setupTask)
tasks.create(NpmResolveTask.NAME, NpmResolveTask::class.java) {
it.dependsOn(setupTask)
it.outputs.upToDateWhen { false }
it.group = TASKS_GROUP_NAME
it.description = "Find, download and link NPM dependencies and projects"
}
setupCleanNodeModulesTask(project)
allprojects {
if (it != project) {
it.extensions.create(NODE_JS, NodeJsExtension::class.java, this)
it.extensions.create(EXTENSION_NAME, NodeJsExtension::class.java, this)
}
}
}
private fun setupCleanNodeModulesTask(project: Project) {
project.tasks.create("cleanNodeModules", Delete::class.java) {
project.tasks.create("cleanKotlinNodeModules", Delete::class.java) {
it.description = "Deletes nodeJs projects created during build"
it.group = BasePlugin.BUILD_GROUP
it.delete.add(project.nodeJs.root.rootPackageDir)
}
project.tasks.create("cleanGradleNodeModules", Delete::class.java) {
project.tasks.create("cleanKotlinGradleNodeModules", Delete::class.java) {
it.description = "Deletes node modules imported from gradle external modules"
it.group = BasePlugin.BUILD_GROUP
it.delete.add(project.nodeJs.root.nodeModulesGradleCacheDir)
@@ -45,10 +51,12 @@ open class NodeJsPlugin : Plugin<Project> {
}
companion object {
const val TASKS_GROUP_NAME: String = "nodeJs"
fun apply(project: Project): NodeJsExtension {
val rootProject = project.rootProject
rootProject.plugins.apply(NodeJsPlugin::class.java)
return rootProject.extensions.getByName(NODE_JS) as NodeJsExtension
return rootProject.extensions.getByName(EXTENSION_NAME) as NodeJsExtension
}
}
}
@@ -76,7 +76,7 @@ open class NodeJsRootExtension(project: Project) : NodeJsExtension(project) {
}
companion object {
const val NODE_JS: String = "nodeJs"
const val EXTENSION_NAME: String = "kotlinNodeJs"
operator fun get(project: Project) = NodeJsPlugin.apply(project.rootProject) as NodeJsRootExtension
}
@@ -14,11 +14,6 @@ open class NodeJsSetupTask : DefaultTask() {
private val settings = project.nodeJs.root
private val env by lazy { settings.environment }
init {
group = NodeJsRootExtension.NODE_JS
description = "Download and install a local node/npm version."
}
val ivyDependency: String
@Input get() = env.ivyDependency
@@ -93,6 +88,6 @@ open class NodeJsSetupTask : DefaultTask() {
}
companion object {
const val NAME: String = "nodeJsSetup"
const val NAME: String = "kotlinNodeJsSetup"
}
}
@@ -15,6 +15,6 @@ open class NpmResolveTask : AbstractTask() {
}
companion object {
const val NAME = "npmResolve"
const val NAME = "kotlinNpmResolve"
}
}
@@ -44,7 +44,7 @@ open class YarnRootExtension(val project: Project) {
)
companion object {
const val YARN: String = "yarn"
const val YARN: String = "kotlinYarn"
operator fun get(project: Project): YarnRootExtension {
val rootProject = project.rootProject
@@ -9,7 +9,7 @@ import de.undercouch.gradle.tasks.download.DownloadAction
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.OutputDirectory
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
import java.io.File
import javax.xml.ws.Action
@@ -26,8 +26,8 @@ open class YarnSetupTask : DefaultTask() {
@OutputDirectory get() = env.home
init {
group = NodeJsRootExtension.NODE_JS
description = "Download and install a local yarn version."
group = NodeJsPlugin.TASKS_GROUP_NAME
description = "Download and install a local yarn version"
onlyIf {
!settings.installationDir.exists()
@@ -62,6 +62,6 @@ open class YarnSetupTask : DefaultTask() {
}
companion object {
const val NAME: String = "yarnSetup"
const val NAME: String = "kotlinYarnSetup"
}
}