如何找到Gradle任务的`type`?

时间:2018-05-17 23:30:33

标签: gradle

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

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

我不想在①注释的行上假定一些任务命名约定,而是希望根据任务的类型制定条件。我原以为type instanceof会起作用,但事实并非如此。我也没有看到任何可以提供任务类型的方法。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

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

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