我读了很多像这样的问题的答案,但它们都非常古老,并且在 groovy 中使用晦涩/过时的语法和/或不适合 Android 项目。
我有一个任务。
tasks.register("asd") {
doFirst {
exec {
在 Android 中开始构建时如何运行它 app/build.gradle.kts
文件?
我已经打印了 tasks
和project.tasks
名字和我已经尝试过
tasks.named("build").dependsOn(":asd")
tasks.named("app:build").dependsOn(":asd")
tasks.named(":app:build").dependsOn(":asd")
project.tasks.named("build").dependsOn(":asd")
project.tasks.named("app:build").dependsOn(":asd")
project.tasks.named(":app:build").dependsOn(":asd")
它要么失败,并显示 Task <name> not found in project
或者什么也不做。
我尝试过 doFirst
, doLast
两者都没有(直接 exec
),但仍然没有。
最佳答案
所以我找到了正确的方法
android {
project.tasks.preBuild.dependsOn("asd")
}
tasks.register("asd") {
doFirst {
exec {}
}
}
引用任务时不需要 :
。
build
和 preBuild
任务可从 (project.)tasks
访问。
doFirst
是必要的,否则它会无限循环。
tasks.register
允许任务在需要时运行,而不是立即运行,如果我们使用 create
关于gradle - 如何在 Android 项目中使用 2021 gradle Kotlin 语法构建之前运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70302976/