使用finalizedBy和dependsOn

时间:2018-11-22 10:44:37

标签: android gradle

我有以下设置:

task A {
  // config for task C
}

task B {
  // config for task C
}

task D {
}

这两个任务都需要由任务C使用它们提供的配置来完成,并且B必须在A之后执行。我已经适应了以下情况

A.finalizedBy C
B.finalizedBy C
B.mustRunAfter A
D.dependsOn A, B

此设置的问题在于,当我运行gradle D时:

  • 执行任务A,配置任务C
  • 任务B看到A已完成并执行。 B覆盖配置 C。
  • C仅对B执行,而不对A执行。

是否可以多次执行任务?我需要此排序A-> C-> B-> C。

编辑:

以下方法似乎可以解决问题,但这不是我想要的方法:

task A {
  // config for task C
  C.execute()
}

task B {
  // config for task C
  C.execute()
}

1 个答案:

答案 0 :(得分:0)

根据设计,Gradle在构建期间只会执行一次给定任务。

如果您必须做两件事,尽管非常相似,那么您需要完成两项任务。

task rules的概念可能会帮助您以通用的方式解决该问题。