Я работаю со следующей структурой проектаКак выполнить задачу Gradle один раз в конце задач подпроекта
Project
|-Subproject1
|-Subproject2
|build.gradle
|settings.gradle
Подмодули включены в settings.gradle
и сконфигурированной в build.gradle
корне проекта.
У меня есть 3 задачи, чтобы сделать
build
(каждый подпроект имеет это)deploy
(это механизм упаковки для каждого подпроекта должен работать самостоятельно)finalizeDeployment
(это необходимо который будет вызван только один раз)
Я хочу, чтобы быть в состоянии назвать
$gradle deploy
< - все подпроекты получить развернутый и окончательное оформление вызывается раз в конце
< $gradle Subproject1:deploy
- Subproject1 развертывается и окончательное оформление вызывается
build.gradle
configure(subprojects) {
task build <<{
println "Do Build "+ project.name
}
task deploy(dependsOn:build){
println 'deploy '+project.name
doLast{
finalizeDeployment.execute()
}
}
}
task finalizeDeployment{
dependsOn subprojects.deploy
doLast{
println 'Finalize Deployment'
}
}
Мне нравится работать вокруг решения. Однако (из-за текущего состояния Gradle) логика вызова по-прежнему немного запутанна, так как вам нужно вызвать deployFinalize для того, чтобы одноименная задача была запущена последней (можно было бы сначала запустить ее в интуитивном режиме). – ZenBalance
@ ZenBalance, в чем причина, по которой вы ожидаете его запуска? Не последняя строка, удостоверяющая, что она запущена последней (это зависит от всех задач развертывания подпроектов). – TWiStErRob