Gradle, js: rename objects to avoid clashing with moowork nodejs plugin
#KT-31834 Fixed
This commit is contained in:
+18
-10
@@ -4,7 +4,7 @@ import org.gradle.api.Plugin
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.plugins.BasePlugin
|
import org.gradle.api.plugins.BasePlugin
|
||||||
import org.gradle.api.tasks.Delete
|
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
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolveTask
|
||||||
|
|
||||||
open class NodeJsPlugin : Plugin<Project> {
|
open class NodeJsPlugin : Plugin<Project> {
|
||||||
@@ -13,31 +13,37 @@ open class NodeJsPlugin : Plugin<Project> {
|
|||||||
"NodeJsPlugin can be applied only to root 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 setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java) {
|
||||||
val npmResolveTask = tasks.create(NpmResolveTask.NAME, NpmResolveTask::class.java)
|
it.group = TASKS_GROUP_NAME
|
||||||
npmResolveTask.outputs.upToDateWhen { false }
|
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)
|
setupCleanNodeModulesTask(project)
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
if (it != project) {
|
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) {
|
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.description = "Deletes nodeJs projects created during build"
|
||||||
it.group = BasePlugin.BUILD_GROUP
|
it.group = BasePlugin.BUILD_GROUP
|
||||||
it.delete.add(project.nodeJs.root.rootPackageDir)
|
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.description = "Deletes node modules imported from gradle external modules"
|
||||||
it.group = BasePlugin.BUILD_GROUP
|
it.group = BasePlugin.BUILD_GROUP
|
||||||
it.delete.add(project.nodeJs.root.nodeModulesGradleCacheDir)
|
it.delete.add(project.nodeJs.root.nodeModulesGradleCacheDir)
|
||||||
@@ -45,10 +51,12 @@ open class NodeJsPlugin : Plugin<Project> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
const val TASKS_GROUP_NAME: String = "nodeJs"
|
||||||
|
|
||||||
fun apply(project: Project): NodeJsExtension {
|
fun apply(project: Project): NodeJsExtension {
|
||||||
val rootProject = project.rootProject
|
val rootProject = project.rootProject
|
||||||
rootProject.plugins.apply(NodeJsPlugin::class.java)
|
rootProject.plugins.apply(NodeJsPlugin::class.java)
|
||||||
return rootProject.extensions.getByName(NODE_JS) as NodeJsExtension
|
return rootProject.extensions.getByName(EXTENSION_NAME) as NodeJsExtension
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -76,7 +76,7 @@ open class NodeJsRootExtension(project: Project) : NodeJsExtension(project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
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
|
operator fun get(project: Project) = NodeJsPlugin.apply(project.rootProject) as NodeJsRootExtension
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-6
@@ -14,11 +14,6 @@ open class NodeJsSetupTask : DefaultTask() {
|
|||||||
private val settings = project.nodeJs.root
|
private val settings = project.nodeJs.root
|
||||||
private val env by lazy { settings.environment }
|
private val env by lazy { settings.environment }
|
||||||
|
|
||||||
init {
|
|
||||||
group = NodeJsRootExtension.NODE_JS
|
|
||||||
description = "Download and install a local node/npm version."
|
|
||||||
}
|
|
||||||
|
|
||||||
val ivyDependency: String
|
val ivyDependency: String
|
||||||
@Input get() = env.ivyDependency
|
@Input get() = env.ivyDependency
|
||||||
|
|
||||||
@@ -93,6 +88,6 @@ open class NodeJsSetupTask : DefaultTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val NAME: String = "nodeJsSetup"
|
const val NAME: String = "kotlinNodeJsSetup"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,6 +15,6 @@ open class NpmResolveTask : AbstractTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val NAME = "npmResolve"
|
const val NAME = "kotlinNpmResolve"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -44,7 +44,7 @@ open class YarnRootExtension(val project: Project) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val YARN: String = "yarn"
|
const val YARN: String = "kotlinYarn"
|
||||||
|
|
||||||
operator fun get(project: Project): YarnRootExtension {
|
operator fun get(project: Project): YarnRootExtension {
|
||||||
val rootProject = project.rootProject
|
val rootProject = project.rootProject
|
||||||
|
|||||||
+4
-4
@@ -9,7 +9,7 @@ import de.undercouch.gradle.tasks.download.DownloadAction
|
|||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.tasks.Input
|
import org.gradle.api.tasks.Input
|
||||||
import org.gradle.api.tasks.OutputDirectory
|
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 java.io.File
|
||||||
import javax.xml.ws.Action
|
import javax.xml.ws.Action
|
||||||
|
|
||||||
@@ -26,8 +26,8 @@ open class YarnSetupTask : DefaultTask() {
|
|||||||
@OutputDirectory get() = env.home
|
@OutputDirectory get() = env.home
|
||||||
|
|
||||||
init {
|
init {
|
||||||
group = NodeJsRootExtension.NODE_JS
|
group = NodeJsPlugin.TASKS_GROUP_NAME
|
||||||
description = "Download and install a local yarn version."
|
description = "Download and install a local yarn version"
|
||||||
|
|
||||||
onlyIf {
|
onlyIf {
|
||||||
!settings.installationDir.exists()
|
!settings.installationDir.exists()
|
||||||
@@ -62,6 +62,6 @@ open class YarnSetupTask : DefaultTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val NAME: String = "yarnSetup"
|
const val NAME: String = "kotlinYarnSetup"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user