Use TCA-compliant Gradle APIs in the JS part of the Kotlin Gradle plugin
This commit is contained in:
+10
-8
@@ -15,6 +15,8 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJsDce
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import java.io.File
|
||||
|
||||
@@ -52,18 +54,18 @@ class KotlinJsDcePlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
private fun processCompilation(project: Project, kotlinCompilation: KotlinCompilation<*>) {
|
||||
val kotlinTaskName = kotlinCompilation.compileKotlinTaskName
|
||||
val kotlinTask = project.tasks.findByName(kotlinTaskName) as? Kotlin2JsCompile ?: return
|
||||
val kotlinTask = kotlinCompilation.compileKotlinTaskProvider
|
||||
val dceTaskName = lowerCamelCaseName(
|
||||
DCE_TASK_PREFIX,
|
||||
kotlinCompilation.target.disambiguationClassifier,
|
||||
kotlinCompilation.name.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME },
|
||||
if (kotlinCompilation.target is KotlinWithJavaTarget<*>) TASK_SUFFIX else MPP_TASK_SUFFIX
|
||||
)
|
||||
val dceTask = project.tasks.create(dceTaskName, KotlinJsDce::class.java).also {
|
||||
|
||||
val dceTask = project.registerTask<KotlinJsDce>(dceTaskName) {
|
||||
it.dependsOn(kotlinTask)
|
||||
project.tasks.findByName("build")!!.dependsOn(it)
|
||||
}
|
||||
project.tasks.named("build").dependsOn(dceTask)
|
||||
|
||||
project.afterEvaluate {
|
||||
val outputDir = project.buildDir
|
||||
@@ -72,10 +74,10 @@ class KotlinJsDcePlugin : Plugin<Project> {
|
||||
|
||||
val configuration = project.configurations.getByName(kotlinCompilation.compileDependencyConfigurationName)
|
||||
|
||||
with(dceTask) {
|
||||
classpath = configuration
|
||||
destinationDir = dceTask.dceOptions.outputDirectory?.let { File(it) } ?: outputDir
|
||||
source(kotlinTask.outputFile)
|
||||
dceTask.configure {
|
||||
it.classpath = configuration
|
||||
it.destinationDir = it.dceOptions.outputDirectory?.let { File(it) } ?: outputDir
|
||||
it.source((kotlinTask.get() as Kotlin2JsCompile).outputFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -196,7 +196,7 @@ constructor(
|
||||
|
||||
override fun useCommonJs() {
|
||||
compilations.all {
|
||||
it.compileKotlinTask.kotlinOptions {
|
||||
it.kotlinOptions {
|
||||
moduleKind = "commonjs"
|
||||
sourceMap = true
|
||||
sourceMapEmbedSources = null
|
||||
|
||||
+7
-5
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.targets.js
|
||||
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
@@ -12,6 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||
import java.util.concurrent.Callable
|
||||
@@ -78,11 +80,11 @@ open class KotlinJsTargetConfigurator(kotlinPluginVersion: String) :
|
||||
compileAllTask.dependsOn(compilation.compileKotlinTaskName)
|
||||
compileAllTask.dependsOn(compilation.processResourcesTaskName)
|
||||
} else {
|
||||
project.tasks.create(compilation.compileAllTaskName).apply {
|
||||
group = LifecycleBasePlugin.BUILD_GROUP
|
||||
description = "Assembles outputs for compilation '${compilation.name}' of target '${compilation.target.name}'"
|
||||
dependsOn(compilation.compileKotlinTaskName)
|
||||
dependsOn(compilation.processResourcesTaskName)
|
||||
project.registerTask<DefaultTask>(compilation.compileAllTaskName) {
|
||||
it.group = LifecycleBasePlugin.BUILD_GROUP
|
||||
it.description = "Assembles outputs for compilation '${compilation.name}' of target '${compilation.target.name}'"
|
||||
it.dependsOn(compilation.compileKotlinTaskName)
|
||||
it.dependsOn(compilation.processResourcesTaskName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
|
||||
internal class DukatCompilationResolverPlugin(
|
||||
@@ -34,7 +35,7 @@ internal class DukatCompilationResolverPlugin(
|
||||
it.dependsOn(nodeJs.npmInstallTask, npmProject.packageJsonTask)
|
||||
}
|
||||
|
||||
compilation.compileKotlinTask.dependsOn(integratedTask)
|
||||
compilation.compileKotlinTaskProvider.dependsOn(integratedTask)
|
||||
|
||||
project.registerTask<SeparateDukatTask>(
|
||||
separateTaskName,
|
||||
|
||||
+6
-5
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import javax.inject.Inject
|
||||
|
||||
open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
@@ -122,8 +123,8 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
it.into(distribution.directory)
|
||||
}
|
||||
|
||||
val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||
assembleTask.dependsOn(distributeResourcesTask)
|
||||
val assembleTaskProvider = project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||
assembleTaskProvider.dependsOn(distributeResourcesTask)
|
||||
|
||||
compilation.binaries
|
||||
.matching { it is Executable }
|
||||
@@ -153,7 +154,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
}
|
||||
|
||||
if (type == KotlinJsBinaryMode.PRODUCTION) {
|
||||
assembleTask.dependsOn(webpackTask)
|
||||
assembleTaskProvider.dependsOn(webpackTask)
|
||||
val webpackCommonTask = registerSubTargetTask<Task>(
|
||||
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
||||
) {
|
||||
@@ -178,12 +179,12 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
|
||||
dependsOn(
|
||||
nodeJs.npmInstallTask,
|
||||
target.project.tasks.getByName(compilation.processResourcesTaskName)
|
||||
target.project.tasks.named(compilation.processResourcesTaskName)
|
||||
)
|
||||
|
||||
configureOptimization(type)
|
||||
|
||||
entryProperty.set(binary.linkTask.map { RegularFile { it.outputFile } })
|
||||
entryProperty.set(project.layout.file(binary.linkTask.map { it.outputFile }))
|
||||
|
||||
commonRunConfigurations.forEach { configure ->
|
||||
configure()
|
||||
|
||||
+7
-8
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||
@@ -158,23 +159,21 @@ constructor(
|
||||
|
||||
override fun useCommonJs() {
|
||||
compilations.all {
|
||||
it.compileKotlinTask.configureCommonJsOptions()
|
||||
it.kotlinOptions.configureCommonJsOptions()
|
||||
|
||||
binaries
|
||||
.withType(JsIrBinary::class.java)
|
||||
.all {
|
||||
it.linkTask.configure { linkTask ->
|
||||
linkTask.configureCommonJsOptions()
|
||||
linkTask.kotlinOptions.configureCommonJsOptions()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun Kotlin2JsCompile.configureCommonJsOptions() {
|
||||
kotlinOptions {
|
||||
moduleKind = "commonjs"
|
||||
sourceMap = true
|
||||
sourceMapEmbedSources = null
|
||||
}
|
||||
private fun KotlinJsOptions.configureCommonJsOptions() {
|
||||
moduleKind = "commonjs"
|
||||
sourceMap = true
|
||||
sourceMapEmbedSources = null
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -65,7 +65,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
||||
super.configureCompilations(target)
|
||||
|
||||
target.compilations.all { compilation ->
|
||||
compilation.compileKotlinTask.kotlinOptions {
|
||||
compilation.kotlinOptions {
|
||||
configureOptions()
|
||||
|
||||
freeCompilerArgs += listOf(
|
||||
|
||||
+4
-3
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.withType
|
||||
import javax.inject.Inject
|
||||
|
||||
open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
@@ -21,7 +23,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
private val runTaskName = disambiguateCamelCased("run")
|
||||
|
||||
override fun runTask(body: NodeJsExec.() -> Unit) {
|
||||
(project.tasks.getByName(runTaskName) as NodeJsExec).body()
|
||||
project.tasks.withType<NodeJsExec>().named(runTaskName).configure(body)
|
||||
}
|
||||
|
||||
override fun configureDefaultTestFramework(it: KotlinJsTest) {
|
||||
@@ -47,8 +49,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
) {
|
||||
compilation.binaries.getIrBinaries(KotlinJsBinaryMode.PRODUCTION)
|
||||
.all { productionExecutable ->
|
||||
val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||
assembleTask.dependsOn(productionExecutable.linkTask)
|
||||
project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(productionExecutable.linkTask)
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.Compani
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin
|
||||
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
|
||||
open class NodeJsRootPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project): Unit = project.run {
|
||||
@@ -26,7 +27,7 @@ open class NodeJsRootPlugin : Plugin<Project> {
|
||||
|
||||
val settings = this.extensions.create(EXTENSION_NAME, NodeJsRootExtension::class.java, this)
|
||||
|
||||
val setupTask = tasks.create(NodeJsSetupTask.NAME, NodeJsSetupTask::class.java) {
|
||||
val setupTask = registerTask<NodeJsSetupTask>(NodeJsSetupTask.NAME) {
|
||||
it.group = TASKS_GROUP_NAME
|
||||
it.description = "Download and install a local node/npm version"
|
||||
}
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
|
||||
val npmProject = compilation.npmProject
|
||||
val nodeJs = NodeJsRootPlugin.apply(project.rootProject)
|
||||
|
||||
val rootClean = project.rootProject.tasks.getByName(BasePlugin.CLEAN_TASK_NAME)
|
||||
val rootClean = project.rootProject.tasks.named(BasePlugin.CLEAN_TASK_NAME)
|
||||
val npmInstallTask = nodeJs.npmInstallTask
|
||||
val packageJsonTaskName = npmProject.packageJsonTaskName
|
||||
val packageJsonUmbrella = nodeJs.packageJsonUmbrellaTaskProvider
|
||||
|
||||
+9
-13
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import java.io.File
|
||||
@@ -157,8 +158,8 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
it.into(distribution.directory)
|
||||
}
|
||||
|
||||
val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||
assembleTask.dependsOn(distributeResourcesTask)
|
||||
val assembleTaskProvider = project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||
assembleTaskProvider.dependsOn(distributeResourcesTask)
|
||||
|
||||
compilation.binaries
|
||||
.all { binary ->
|
||||
@@ -191,7 +192,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
}
|
||||
|
||||
if (type == KotlinJsBinaryMode.PRODUCTION) {
|
||||
assembleTask.dependsOn(webpackTask)
|
||||
assembleTaskProvider.dependsOn(webpackTask)
|
||||
val webpackCommonTask = registerSubTargetTask<Task>(
|
||||
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
||||
) {
|
||||
@@ -227,12 +228,9 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
}
|
||||
|
||||
entryProperty.set(
|
||||
actualDceTaskProvider.map {
|
||||
RegularFile {
|
||||
it.destinationDir
|
||||
.resolve(compilation.compileKotlinTask.outputFile.name)
|
||||
}
|
||||
}
|
||||
project.layout.file(actualDceTaskProvider.map {
|
||||
it.destinationDir.resolve(compilation.compileKotlinTask.outputFile.name)
|
||||
})
|
||||
)
|
||||
|
||||
resolveFromModulesFirst = true
|
||||
@@ -256,7 +254,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
DCE_TASK_SUFFIX
|
||||
)
|
||||
|
||||
val kotlinTask = compilation.compileKotlinTask
|
||||
val kotlinTask = compilation.compileKotlinTaskProvider
|
||||
|
||||
return project.registerTask(dceTaskName) {
|
||||
if (dev) {
|
||||
@@ -267,15 +265,13 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
||||
}
|
||||
}
|
||||
|
||||
it.dependsOn(kotlinTask)
|
||||
|
||||
it.kotlinFilesOnly = true
|
||||
|
||||
it.classpath = project.configurations.getByName(compilation.runtimeDependencyConfigurationName)
|
||||
it.destinationDir = it.dceOptions.outputDirectory?.let { File(it) }
|
||||
?: compilation.npmProject.dir.resolve(if (dev) DCE_DEV_DIR else DCE_DIR)
|
||||
|
||||
it.source(kotlinTask.outputFile)
|
||||
it.source(kotlinTask.map { it.outputFile })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||
import org.jetbrains.kotlin.gradle.tasks.withType
|
||||
import javax.inject.Inject
|
||||
|
||||
open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) :
|
||||
@@ -21,7 +22,7 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) :
|
||||
private val runTaskName = disambiguateCamelCased("run")
|
||||
|
||||
override fun runTask(body: NodeJsExec.() -> Unit) {
|
||||
(project.tasks.getByName(runTaskName) as NodeJsExec).body()
|
||||
project.tasks.withType<NodeJsExec>().named(runTaskName).configure(body)
|
||||
}
|
||||
|
||||
override fun testTask(body: KotlinJsTest.() -> Unit) {
|
||||
@@ -41,7 +42,7 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) :
|
||||
) {
|
||||
val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) {
|
||||
group = taskGroupName
|
||||
inputFileProperty.set(compilation.compileKotlinTask.outputFile)
|
||||
inputFileProperty.set(project.layout.file(compilation.compileKotlinTaskProvider.map { it.outputFile }))
|
||||
}
|
||||
target.runTask.dependsOn(runTaskHolder)
|
||||
}
|
||||
|
||||
+2
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.CleanDataTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
|
||||
open class YarnPlugin : Plugin<Project> {
|
||||
override fun apply(project: Project): Unit = project.run {
|
||||
@@ -25,7 +26,7 @@ open class YarnPlugin : Plugin<Project> {
|
||||
val yarnRootExtension = this.extensions.create(YarnRootExtension.YARN, YarnRootExtension::class.java, this)
|
||||
val nodeJs = NodeJsRootPlugin.apply(this)
|
||||
|
||||
tasks.create(YarnSetupTask.NAME, YarnSetupTask::class.java) {
|
||||
registerTask<YarnSetupTask>(YarnSetupTask.NAME) {
|
||||
it.dependsOn(nodeJs.nodeJsSetupTask)
|
||||
}
|
||||
|
||||
|
||||
+7
-6
@@ -11,6 +11,7 @@ import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.testing.AbstractTestTask
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
||||
|
||||
@@ -32,8 +33,8 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = "
|
||||
taskHolder: TaskProvider<out AbstractTestTask>,
|
||||
aggregate: TaskProvider<KotlinTestReport> = allTestsTask
|
||||
) {
|
||||
project.tasks.getByName(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(taskHolder.name)
|
||||
project.cleanAllTestTask.dependsOn(cleanTaskName(taskHolder.name))
|
||||
project.tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(taskHolder)
|
||||
project.cleanAllTestTask.configure { it.dependsOn(cleanTaskName(taskHolder.name)) }
|
||||
aggregate.configure {
|
||||
it.dependsOn(taskHolder.name)
|
||||
it.registerTestTask(taskHolder.get())
|
||||
@@ -95,12 +96,12 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = "
|
||||
return "clean" + taskName.capitalize()
|
||||
}
|
||||
|
||||
private val Project.cleanAllTestTask: Task
|
||||
private val Project.cleanAllTestTask: TaskProvider<*>
|
||||
get() {
|
||||
val taskName = cleanTaskName(allTestsTask.name)
|
||||
return tasks.findByName(taskName)
|
||||
?: tasks.create(taskName, Task::class.java).also {
|
||||
tasks.getByName(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(it)
|
||||
return project.locateTask<Task>(taskName)
|
||||
?: project.registerTask<Task>(taskName).also { cleanAllTest ->
|
||||
tasks.named(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(cleanAllTest)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user