我在多项目构建中具有以下任务:
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 runA
或gradle runB
时,所有子任务都按应有的方式并行运行。
但是,当我运行gradle runA runB
时,只有某些任务被调用
同时我希望所有五个唯一任务a:x a:y c:x b:x b:y
并行运行。我也尝试过使用dependsOn
而不是GradleBuild
任务类型,但这会导致相同的结果(通常5个预期任务中只有4个并行运行)。
请注意,任务在运行应用程序时永远不会“完成”,在这里,我或多或少地滥用gradle作为启动程序。我假设gradle块等待一个任务完成,但是它们之间没有依赖关系。
我需要做什么来强制gradle同时并行运行所有任务?
答案 0 :(得分:0)
Gradle将使用启发式方法来确定要并行运行的事物数量。因此,最可能的解释是,默认情况下,它将自身限制为4个并行任务。
您可以通过org.gradle.workers.max=(max # of worker processes)
control this:
USING INDEX