Подпроекты Gradle: как выполнить `check` только для основного проекта? - PullRequest
0 голосов
/ 07 октября 2018

Я добавил подпроект в свой проект gradle и теперь всякий раз, когда я выполняю цель check, он также запускает тесты для моего подпроекта.

Я надеялся, что смогу выполнить check -taskв главном проекте, указав его как абсолютную задачу как

gradle :check

или

gradle ::check

, но обе командные строки все еще выполняют все тесты.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Вы можете получить доступ к графу задач подпроекта из основных проектов `build.gradle 'и отключить задачи.

Таким образом, вы можете отключить задачу, когда вызываете ее в основном проекте, но онабудет по-прежнему включен при непосредственном вызове файла сборки подпроекта:

project('subproject') {
    //disable 'check' and 'test' task
    gradle.taskGraph.whenReady {
        tasks.find {it.name=="check"}.enabled=false
        tasks.find {it.name=="test"}.enabled=false
    }
}
0 голосов
/ 07 октября 2018

Обойти это невозможно, поэтому вам нужно будет реструктурировать свою сборку (я думаю, что check задача родителя по определению является совокупностью подпроектов).У вас могут быть подпроекты, зависящие друг от друга, я предполагаю, что это может быть тем, что вы хотите смоделировать в вашей сборке.

Предположим, у вас есть подпроекты core и myModule.Если вы хотите, чтобы myModule зависел (и использовал вывод) core, вы добавляете project зависимость к myModule:

dependencies {
  compile project(':core')
}

Это также правильно настроит зависимости задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...