Вызов задачи Gradle только для одного подпроекта - PullRequest
0 голосов
/ 10 мая 2018

Как настроить подпроекты для Gradle и запустить задачу Gradle из build.gradle только для текущего каталога, из которого я выполняю задачу?

Например, предположим, у меня есть два проекта в родительском.папка:

  • root-project
    • project-1
    • project-2
  • build.gradle
  • settings.gradle

У меня есть проекты 1 и 2, включенные в файл settings.gradle:

include(
    'project-1',
    'project-2'
)

У меня есть задача, настроенная в файле build.gradle, которыйЯ хотел бы позвонить.Я вложил задачи в блок subprojects{}:

subprojects {
    ...
    task check(type: JavaExec) {
        main = MAIN_CLASS
        classpath = sourceSets.main.runtimeClasspath
    }
    ...
}

Однако build.gradle запускается для всех подпроектов таким образом.

Как я могу определить все возможные подпроекты, но вызвать только задачу Gradle для текущего проекта, из которого я выполняю (т. Е. Избежать вызова задачи для всех подпроектов)?Я хотел бы сделать это только с текущим именем задачи (например, gradle check).

1 Ответ

0 голосов
/ 11 мая 2018

Вызов задачи в одном проекте с gradle check невозможен.

У вас есть два варианта:

  • Использование модели, предлагаемой Gradle, где задачам может предшествовать имя проекта в многопроектной сборке, что устраняет необходимость перехода к подпроектам.
    • Что означает вызов gradle :project-1:check или gradle :project-2:check в зависимости от того, какую задачу вы хотите запустить.
  • Определить задачи с разными именами в каждом подпроекте. См. Правила задач о том, как определять задачи с динамическими именами.
    • Что означает вызов gradle check1 или gradle check2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...