是否可以从同一子项目并行运行两个独立的gradle任务?

时间:2018-10-29 09:28:14

标签: gradle

在我工作的项目(基于gradle)中,有一个非常大的模块(gradle子项目)。 在基于CI的构建过程中,该子项目中的两个任务被顺序执行,这导致执行时间显着增加。

该项目使用org.gradle.parallel=true,但是当我创建一个简单项目来检查如何使用此属性执行来自同一子项目的独立任务时,我发现这些任务是按顺序执行的。

我的问题:

是否可以从同一个gradle子项目中并行执行两个独立的任务,以缩短其执行时间? (假设它们不在同一位置产生输出并且不使用任何共享状态)

1 个答案:

答案 0 :(得分:1)

摘自文档(请参阅Parallel execution):

  

大多数构建都包含一个以上的项目,其中一些项目通常是彼此独立的。然而,不管项目结构如何,默认情况下,Gradle一次只能运行一项任务(这将很快得到改善)。通过使用--parallel开关,您可以强制Gradle并行执行任务,只要这些任务位于不同的项目中。

我认为这里最重要的部分是“只要这些任务在不同的项目中”:如果您的两个长期运行的任务属于同一子项目,则您将无法使它们并行执行(不在当前的Gradle版本)