Gradle зависит от того, не работает, когда вызывается снова в зависимой задаче - PullRequest
0 голосов
/ 20 сентября 2018

Я хотел запускать задачу superParent в моем нижнем build.gradle всякий раз, когда она вызывается.

task superParent {
    doLast {
        println 'Hello Super Parent Last'
    }
}

task helloParent {
    dependsOn superParent
    description 'Hello task is Dependent on helloParent Task'
    doFirst {
        println 'Hello Parent First'
    }
    doLast {
        println 'Hello Parent Last'
    }
}

task hello {
    description 'Just prints Hello..'
    dependsOn helloParent,superParent
    doFirst {
        println 'Hello First'
    }
    doLast {
        println 'Hello Last'
    }
}

, когда я выполняю gradlew hello, я получаю следующий вывод

> Task :superParent       
Hello Super Parent Last   

> Task :helloParent       
Hello Parent First        
Hello Parent Last         

> Task :hello             
Hello First               
Hello Last  

Задача superParent больше не вызывается из задачи hello.Я ожидаю такой вывод

Ожидаемый результат

> Task :superParent       
Hello Super Parent Last   

> Task :helloParent       
Hello Parent First        
Hello Parent Last     

> Task :superParent       
Hello Super Parent Last     

> Task :hello             
Hello First               
Hello Last   

1 Ответ

0 голосов
/ 20 сентября 2018

Нет возможности добавить задачу в DAG (ациклический ориентированный граф - который использует gradle под капотом) более одного раза.Задача может быть добавлена ​​не более один раз .Следовательно, если вы определяете зависимость от задачи A и B до C, порядок выполнения может быть следующим:

  • C -> B -> A
  • C -> A -> B

Но C будет выполняться только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...