Slackbot
08/04/2023, 9:20 AMEmil Kantis
08/04/2023, 9:25 AM// in build-logic/**/base-conventions.gradle.kts
plugins {
id("io.gitlab.arturbosch.detekt")
}
// tried adding this here
tasks.findByName("check")?.run {
dependsOn.removeIf { (it as? Task)?.name == "detekt" }
dependsOn(tasks.named("detektMain"))
dependsOn(tasks.named("detektTest"))
}
I also tried to configure check
from the root project
// ./build.gradle.kts
tasks.named("check").configure {
dependsOn.removeIf { (it as? Task)?.name == "detekt" }
}
Neither approach worked so farVampire
08/04/2023, 9:25 AMtasks.check { setDependsOn(...) }
Emil Kantis
08/04/2023, 9:26 AMEmil Kantis
08/04/2023, 9:33 AMEmil Kantis
08/04/2023, 9:44 AMTask
was wrong. Shouldve been TaskProvider
Vampire
08/04/2023, 9:44 AMDetektPlugin#apply
directly unconditionally calls project._registerDetektPlainTask_(extension)
⢠project._registerDetektPlainTask_(extension)
directly unconditionally calls DetektPlain#registerTasks(extension)
⢠DetektPlain#registerTasks(extension)
directly unconditionally calls project._registerDetektTask_(extension)
⢠project._registerDetektTask_(extension)
directly unconditionally calls tasks.matching { it.name == LifecycleBasePlugin.CHECK_TASK_NAME }.configureEach { it.dependsOn(detektTaskProvider) }
So it is indeed check
which depends on detekt
.
And the dependency should already be there.Emil Kantis
08/04/2023, 9:45 AMtasks.named("check").configure {
this.setDependsOn(
this.dependsOn.filterNot {
it is TaskProvider<*> && it.name == "detekt"
} + tasks.named("detektMain") + tasks.named("detektTest"),
)
}
which is working now šVampire
08/04/2023, 9:46 AMdetekt
you could also simply disable it šEmil Kantis
08/04/2023, 9:46 AMtasks.matching { it.name == LifecycleBasePlugin.CHECK_TASK_NAME }.configureEach
over tasks.named("check")
?Vampire
08/04/2023, 9:47 AMnamed
Vampire
08/04/2023, 9:47 AMnamed
fails if the task is not there, matching
just ignores.Emil Kantis
08/04/2023, 9:48 AMVampire
08/04/2023, 9:48 AMtasks.matching
like that should heavily disturb task-configuration avoidanceVampire
08/04/2023, 9:48 AMVampire
08/04/2023, 9:48 AMI want check to run another task than the default one š so I cant remove it completely.?
Emil Kantis
08/04/2023, 9:50 AMdetekt
, I want to use detektMain
and detektTest
instead šVampire
08/04/2023, 9:57 AMVampire
08/04/2023, 9:58 AMtasks.detekt { enabled = false }
tasks.check { dependsOn(tasks.detektMain, tasks.detektTest) }
Vampire
08/04/2023, 9:59 AMnamed
, you can just use the accessors which internally use named
. Just in Groovy DSL you should use named
instead to maintain task-configuration avoidance.Emil Kantis
08/04/2023, 9:59 AMVampire
08/04/2023, 9:59 AMdetekt
at all, not even manuallyEmil Kantis
08/04/2023, 10:01 AM