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

时间:2018-10-05 14:28:19

标签: gradle build.gradle gradle-plugin

我有两个任务Task-ATask-B

这是我的任务A

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

我的任务B 依赖于任务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

1 个答案:

答案 0 :(得分:4)

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

尝试:

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