首页 > 解决方案 > 仅根据 Gradle 中的条件执行 task.dependsOn

问题描述

我有两个任务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在条件下执行?

标签: gradlebuild.gradlegradle-plugin

解决方案


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

尝试 :

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

推荐阅读