Выполнить task.dependsOn только при условии в Gradle - PullRequest
0 голосов
/ 05 октября 2018

У меня есть две задачи Task-A и Task-B

Это моя Задача-A

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

Моя Задача-B зависит от Задачи-A, и я должен сделать ее зависимой только от Условия, что _.property('fileName') должно существовать и не должно быть нулевым

Поэтому я написал свою Задачу-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 голосов
/ 05 октября 2018

Вы должны установить директивы dependsOn на этапе настройки

try:

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