Я пытаюсь включить ZIP-файл в файл TAR в сборке градации. Я не сумасшедший, это репликация существующего скрипта муравья, и я не могу изменить раскладку по различным бизнес-причинам.Как запустить задачу за другим с помощью taskGraph.when Закройте закрытие
- У меня использовать whenReady замыкание на collect dependencies без проблем
- whenReady означает, что файл ZIP не строится не только после того, задача buildTar завершена, даже если buildTar зависит от buildZip.
- Я не могу назвать tar {} напрямую, так как gradle не поддерживает это
- Gradle, похоже, напрямую не поддерживает вызовы.
Это общее расположение У меня есть
task buildZip(type: Zip) {
gradle.taskGraph.whenReady {
// build zip file usual way with from blocks
from(...) {
}
from(...) {
}
}
doLast {
println "ZIP ready"
// could I call tar task from here??
}
}
task buildTar(type: Tar, dependsOn: buildZip) {
println "Building TAR"
from (buildZip.archivePath) {
}
... more stuff, installer script etc.
}
Выход я вижу с Gradle: buildTar, т.е. TAR строит перед ZIP построен.
Building TAR
ZIP ready
Обновление.
Приведенный ниже комментарий Перри Фаулера правильно определяет проблему, основанную на моем непонимании исполнения и конфигурации в градиенте.
ТДО не строится перед Zip, задача Тар быть настроена перед задачей Zip выполняется
Update.
Этот вопрос больше не нужно, как вариант duplicatesStrategy можно использовать в ZIP задаче, чтобы избежать проблем быть «фиксированный» с gradle.taskGraph.whenReady
Тар не строится перед Zip, задача Tar выполняется * сконфигурирована * перед выполнением задачи Zip. См. Http: // www.gradle.org/docs/current/userguide/userguide_single.html#build_lifecycle –
@PerrynFowler. Не могли бы вы добавить свой комментарий в качестве ответа, и я соглашусь с ним. – Adam