Gradle GradleBuild任务不能并行运行

时间:2019-05-21 13:15:30

标签: gradle build.gradle spring-boot-gradle-plugin

我在多项目构建中具有以下任务:

task runA(type: GradleBuild) {
    tasks = [
         ':a:x:bootRun',
         ':a:y:bootRun',
         ':c:x:bootRun'
    ]
}

task runB(type: GradleBuild) {
    tasks = [
         ':b:x:bootRun',
         ':b:y:bootRun',
         ':c:x:bootRun'
    ]
}

每个:a:x等都是一个单独的项目(build.gradle / build.gradle.kts文件)。当我调用gradle runAgradle runB时,所有子任务都按应有的方式并行运行。

但是,当我运行gradle runA runB时,只有某些任务被调用  同时我希望所有五个唯一任务a:x a:y c:x b:x b:y并行运行。我也尝试过使用dependsOn而不是GradleBuild任务类型,但这会导致相同的结果(通常5个预期任务中只有4个并行运行)。

请注意,任务在运行应用程序时永远不会“完成”,在这里,我或多或少地滥用gradle作为启动程序。我假设gradle块等待一个任务完成,但是它们之间没有依赖关系。

我需要做什么来强制gradle同时并行运行所有任务?

1 个答案:

答案 0 :(得分:0)

Gradle将使用启发式方法来确定要并行运行的事物数量。因此,最可能的解释是,默认情况下,它将自身限制为4个并行任务。

您可以通过org.gradle.workers.max=(max # of worker processes) control this

USING INDEX