首页 > 解决方案 > 如何找到 Gradle 任务的“类型”?

问题描述

我有以下代码可以正常工作:

allprojects {
  tasks.whenTaskAdded { task ->
    if (task.name =~ /generate.*Proto/) { // ①
      task.dependsOn(protolockStatus)
      task.finalizedBy(protolockCommit)
    }
  }
}

我不想假设用①注释的行上有一些任务命名约定,我想根据任务的类型来制定条件。我原以为type instanceof会奏效,但它没有。我也看不到任何可以提供任务类型的方法。有没有办法做到这一点?

标签: gradle

解决方案


您可以class为此使用任务。例如,你可以试试这个:

allprojects {
    tasks.whenTaskAdded { task ->
        println "Type is " + task.class.simpleName
    }
}

推荐阅读