build.gradle gradlebuild任务不在并行运行



我在多项目构建中具有这些任务:

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同时同时运行所有任务?

gradle将使用启发式方法来决定并行运行多少件事。因此,最有可能的解释是默认情况下它将自己限制在4个并行任务中。

您可以通过gradle.properties来控制它:

org.gradle.workers.max=(max # of worker processes)

最新更新