В моем сценарии build.gradle у меня много задач, каждый из которых зависит от нуля или более других задач.Управление выполнением задачи Gradle
Существует три «основных» задачи, которые можно назвать: moduleInstallation
, backupFiles
и restoreFiles
.
Возникает вопрос: я хотел бы сказать Gradle, какие задачи выполнить и которые не нужно выполнять. Например, при вызове moduleInstallation
я хочу, чтобы все зависящие задачи выполнялись (независимо от их UP-TO-DATE flag
), но не задач восстановления. Я попытался изменить фазу, в которой выполняются задачи (например, фаза конфигурации, этап выполнения, ...) и несколько других вещей, но все задачи просто продолжают выполняться.
Решение, о котором я думал, просто указывало на основные задачи, которые, когда эта основная задача называется (fe moduleInstallation
), мы устанавливаем UP-TO-DATE flag
всех несвязанных задач в false, поэтому они не получают казнены. Это возможно?
EDIT: Вот пример:
Когда moduleInstallation
называется (который зависит от backupFiles
), restoreFiles
(который зависит от restoreFromDate
) выполняется слишком.
Первое основное действие
task moduleInstallation << {
println "Hello from moduleInstallation"
}
task backupFiles {
doLast {
println "Hello from backupFiles"
}
}
Второе основное действие
task restoreFiles {
println "Hello from restoreFiles"
}
task restoreFromDate {
println "Hello from restoreFromDate"
}
Зависимости:
moduleInstallation.dependsOn backupFiles
restoreFiles.dependsOn restoreFromDate
Так белый ен я типа gradle moduleInstallation
в терминале, я получаю следующий вывод:
Hello from restoreFromDate
Hello from restoreFiles
Hello from backupFiles
Hello from moduleInstallation
Способ сообщить Gradle, что другие задачи для выполнения - установить правильные зависимости задачи. Почему вы хотите только выполнить подмножество зависимостей задач? –
@Peter: Как указано, зависимости правильны. Просто я хочу иметь 1 скрипт, дающий пользователю 3 возможных основных действия (каждый из которых состоит из разных задач и зависимостей), которые не имеют никакого отношения друг к другу. И поскольку они не имеют ничего общего друг с другом, они не должны выполняться, когда требуется другое основное действие. –
Звучит как проблема с вашим скриптом сборки. Пожалуйста, предоставьте минимальный автономный пример. –