仅在 Gradle 中的条件下执行 task.dependsOn

Execute task.dependsOn only on a Condition in Gradle

我有两个任务Task-ATask-B

这是我的任务-A

task Task-A () {
  doLast {
    def fileName = _.property('fileName')
    if (fileName !=null) {
            println 'success'
   }
  }
}

我的Task-B依赖于Task-A,我应该让它只依赖于_.property('fileName')应该存在并且不应该为空的条件

所以我这样写了我的 Task-B

task Task-B () {
      doFirst {
        def fileName = _.property('fileName')
        if (fileName !=null) {
            dependsOn 'Task-A'
        }
       }
 }

它抛出一个错误

Cannot call Task.dependsOn(Object...) on task ':Task-B' after task has started execution.

如何在条件下执行dependsOn

您必须在配置阶段设置 dependsOn 指令

尝试:

task Task-B () {
    def fileName = _.property('fileName')
    if (fileName !=null) {
        dependsOn 'Task-A'
    }
}