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

可以从同一个子项目并行运行两个独立的gradle任务吗?,gradle,Gradle,在我工作的项目中(基于gradle),有一个非常大的模块(gradle子项目)。 在构建CI期间,此子项目中的两个任务按顺序执行,这会导致大量执行时间 该项目使用org.gradle.parallel=true,但当我创建简单项目来检查来自同一子项目的独立任务如何使用此属性执行时,我发现任务是按顺序执行的 我的问题: 是否可以并行执行来自同一gradle子项目的两个独立任务,以缩短它们的执行时间?(假设它们不在同一位置生成输出,并且不使用任何共享状态)来自文档(请参阅): 大多数构建由多个项目组

在我工作的项目中(基于gradle),有一个非常大的模块(gradle子项目)。 在构建CI期间,此子项目中的两个任务按顺序执行,这会导致大量执行时间

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

我的问题:

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

来自文档(请参阅):

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


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

M.Ricciuti的回答是正确的。在我看来,这是格拉德尔真正的弱点。IIRC过去曾试图实现这一点,但已被放弃。有一个gradle插件:但它看起来也被抛弃了。还请注意,许多任务都内置了固有的并行化功能,如test.maxParallelForks。