Я хочу создать пользовательскую задачу gradle для проекта Android, которая будет вызывать цепочку других задач, зависит от вида сборки и конфигурации сборки.
Итак, то, что я делаю в моем build.gradle.kts(мы используем скрипт kotlin)
gradle.projectsEvaluated {
rootProject.allprojects.filter { project ->
!Config.CodeQuality.ignoredProjects.contains(project.name)
}.forEach { project ->
project.tasks.filter { task ->
task.name.startsWith("lint")
}.forEach { task ->
val taskSyfix = task.name.drop(4)
val taskName = "codeQuality$taskSyfix"
println("qualityscripts create task $taskName")
project.tasks.create(taskName) {
group = "verification"
dependsOn("checkstyle", "deteltCkeck", "ktlint", task.name)
}
}
}
}
Так, чем, если я запускаю ./gradlew tasks
...
Verification tasks
------------------
check - Runs all checks. checkstyle - Runs checkstyle.
codeQuality
codeQualityDebug
codeQualityDevMenuFlavor1Debug
codeQualityDevMenuFlavor1Release
codeQualityDevMenuFlavor2Debug
codeQualityDevMenuFlavor2Release
...
Так что они существуют.Но затем, если я пытаюсь запустить какой-либо из них, я получаю следующую ошибку:
- Что пошло не так: Задача 'codeQualityDevMenuFlavor1Debug' не найдена в корневом проекте 'myproject-android'.