У меня есть проект gradle со следующей структурой:
У меня есть последовательность задач (назовем их taskA, taskB, taskC), которые берут один входной файл (назовем его source.tar.gz) и генерируют выходной файл (назовем его dist.tar.gz). , Предположим, что taskA / taskB / taskC потребуется запустить процессы и т. Д.
У меня также есть задача (называемая taskZ), которая обеспечивает очистку после taskA, taskB, taskC. Предположим, он остановит процессы, запущенные первым набором задач.
У меня есть пользовательская задача make, которая зависит от сборки и ее завершения. Примерно так:
task make {
dependsOn taskA, taskB, taskC
finalizedBy taskZ
}
Наконец, встроенная задача gradle для сборки зависит от моей пользовательской задачи make.
Я хотел бы сообщить сотрудникам Gradle, что вход make - это файл 'source.tar.gz', а вывод - 'dist.tar.gz', поэтому make 'не нужно запускать, если' dist.tar.gz ' новее, чем source.tar.gz.
Я попытался объявить ввод и вывод «make» следующим образом:
task make {
dependsOn taskA, taskB, taskC
finalizedBy taskZ
inputs.file("$projectDir/src/main/source.tar.gz")
outputs.file("$buildDir/dist.tar.gz")
}
Но gradle все еще запускает весь процесс.
Можно ли как-нибудь сказать gradle пропустить задачу make и ее зависимости?