Gradle GradleBuild задачи не работают параллельно - PullRequest
0 голосов
/ 21 мая 2019

У меня есть следующие задачи в многопроектной сборке:

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, но это приводит к тому же результату (обычно только 4 из 5 ожидаемых задач выполняются параллельно).

Обратите внимание, что задачи никогда не "завершаются", когда они запускают приложение, я более или менее злоупотребляю gradle как своего рода средством запуска.Я полагаю, что блоки gradle ожидают завершения одной из задач, но между ними нет зависимостей.

Что нужно сделать, чтобы заставить gradle одновременно выполнять все задачи одновременно?

1 Ответ

0 голосов
/ 23 мая 2019

Gradle будет использовать эвристику, чтобы решить, сколько вещей нужно запустить параллельно. Поэтому наиболее вероятное объяснение состоит в том, что по умолчанию он ограничивается четырьмя параллельными задачами.

Вы можете управлять этим через gradle.properties:

org.gradle.workers.max=(max # of worker processes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...