Gradle: исключить запуск задачи подпроекта при вызове корневой задачи - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующая структура проекта:

Root project 'base'
+--- Project ':server'
+--- Project ':testManager'

Каждый модуль имеет свою собственную задачу artifactoryPublish.

Как исключить выполнение модуля artifactoryPublish из testManager при запуске корневой задачи в корневом каталоге base?

> ./gradlew artifactoryPublish - это должно не запустить testManager:artifactoryPublish.

Но мне нужно иметь возможность запускать эту задачу отдельно для одного testmanager модуля:

> ./gradlew testManager: artifactoryPublish` - это должно запустить задачу в указанном модуле.

Я попытался добавить следующее к settings.gradle:

startParameter.excludedTaskNames << ':testManager:artifactoryPublish'

Но в этом случае задача пропускается всегда, даже если я запускаю ее с именем модуля.

Или, может быть, есть способ проверить, вызывается ли artifactoryPublish только для testManager, в противном случае установить флаг artifactoryPublish.skip?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Решение, которое подходит для моего случая, состоит в том, чтобы добавить в testManager build.gradle следующее:

artifactoryPublish.onlyIf { 
    ext.has("publishTestFiles") 
}

Это позволяет использовать дополнительные флаги, только если требуется запуск задачи этого модуля.

0 голосов
/ 01 марта 2019

Вы можете исключить запуск задач с помощью -x switch

$> gradle --dry-run artifactoryPublish
:artifactoryPublish SKIPPED
:server:artifactoryPublish SKIPPED
:testManager:artifactoryPublish SKIPPED

$> gradle --dry-run artifactoryPublish -x :testManager:artifactoryPublish
:artifactoryPublish SKIPPED
:server:artifactoryPublish SKIPPED
...