It works the following way
configure(subprojects) {
task build << {
println "Do Build " + project.name
}
task deployPrepare(dependsOn: build)<<{
println 'deploy ' + project.name
}
task deployFinalize(dependsOn: deployPrepare)<<{
parent.deployFinalize.execute()
}
}
task deployFinalize {
doLast {
println 'Finalize Deployment'
}
}
deployFinalize.dependsOn(subprojects.deployPrepare)
The Console output for gradle subproject1:deployFinalize
is:
Do Build subproject1
deploy subproject1
Finalize Deployment
The Console output for gradle deployFinalize
is:
Do Build subproject1
deploy subproject1
Do Build subproject2
deploy subproject2
Finalize Deployment