Gradle: запускать предварительные и последующие задачи также, когда задачи связаны? - PullRequest
0 голосов
/ 20 декабря 2018

Допустим, build.gradle в конце этого поста.

Если я запускаю задачу WorkA или WorkB, я получаю:

> Task :preTask
PreTask
> Task :WorkB (or A)
WorkB (or A)
> Task :finishTask
FinishTask

Однако, если запустить задачу allWork, до иФинишное задание выполняется только один раз!Как это исправить?

> Task :preTask
PreTask
> Task :WorkA
WorkA
> Task :WorkB
WorkB
> Task :finishTask
FinishTask
> Task :AllWork
Combined

build.gradle

task preTask { 
  doFirst { 
     println "PreTask"
  }
}

task finishTask {
  doFirst { 
    println "FinishTask"
  }
}

task WorkA {
  dependsOn preTask
  mustRunAfter preTask
  finalizedBy finishTask
  doFirst { 
   println "WorkA"  
 }
}

task WorkB {
  dependsOn preTask
  mustRunAfter preTask
  finalizedBy finishTask
  doFirst { 
   println "WorkB"  
 }
}

task AllWork {
  dependsOn WorkA
  dependsOn WorkB
  WorkB.mustRunAfter WorkA
  doFirst { 
   println "Combined"  
 }
}
...