#gradle
#gradle
Вопрос:
Я специально хочу посмотреть, можете ли вы создать задачу, которая зависит от внутренней задачи gradle «assembleRelease» в среде с несколькими проектами. Здесь нужно собрать много, много независимых частей, поэтому изменение во всех файлах сборки не является оптимальным.
Моя основная ситуация заключается в поиске задачи, например «release», которая может вызывать:a: assembleRelease , :b:assembleRelease и: c: assembleRelease без необходимости вводить имена всех проектов для начала.
Я попытался выполнить следующее определение задачи в корневом проекте build.gradle.kts:
tasks.register("release") {
finalizedBy(tasks.getByPath("assembleRelease"))
}
а также tasks.getByName и пытается пройти через gradle taskGraph. График задач вообще не кажется правильным путем, но я не уверен, является ли это возможной задачей или противоречит соглашениям gradle делать что-то таким образом.
Комментарии:
1. У вас не
task A(dependsOn: ['B, 'C']) << { ... }
работает?2. Да, это работает. Я уточню, что конечная цель — включить тестирование и компиляцию релиза с задачей с произвольным именем. Ввод «gradle test assembleRelease» работает просто отлично, но я собираюсь объединить все в одну задачу.
Ответ №1:
Вы бы просто определили задачу, которая зависит от нескольких других задач.
Предполагая, что корневой проект:
tasks {
register("release") {
dependsOn(
named(":a:assembleRelease"),
named(":b:assembleRelease:),
named(":c:assembleRelease")
)
}
}
Вы можете добавить практически бесконечное количество зависимостей задач. Более подробную информацию см. в разделе Создание задач, в частности добавление зависимостей к задаче.