如何在Android项目中构建2021 gradleKotlin语法之前运行任务

esyap4oy  于 2023-03-03  发布在  Android
关注(0)|答案(1)|浏览(140)

我读了很多像这样的多个问题的答案,但它们都非常古老,在Groovy中使用《双城之战》/过时的语法和/或不适合Android项目。
我有任务。

tasks.register("asd") {
  doFirst {
    exec {

在Android app/build.gradle.kts文件中开始构建时,如何运行它?
我已经打印了tasksproject.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失败,要么什么也不做。
我尝试了doFirstdoLast和两者都没有(直接exec),仍然什么都没有。

pieyvz9o

pieyvz9o1#

所以我找到了正确的方法

android {
  project.tasks.preBuild.dependsOn("asd") 
}

tasks.register("asd") {
  doFirst {
    exec {}
  }
}

引用任务时不需要:buildpreBuild任务可以从(project.)tasks访问。
doFirst是必需的,否则它将无休止地循环。tasks.register允许任务在需要时运行,而不是立即运行,如果我们使用create,就会发生这种情况

相关问题