我在多项目构建中具有这些任务:
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同时同时运行所有任务?
gradle将使用启发式方法来决定并行运行多少件事。因此,最有可能的解释是默认情况下它将自己限制在4个并行任务中。
您可以通过gradle.properties
来控制它:
org.gradle.workers.max=(max # of worker processes)