So this turned out to be nothing to do with the Upload
task. Instead this syntax works in Gradle 2.3 but fails in Gradle 2.5:
task install(dependsOn: subprojects.collect { Project p -> p.tasks.withType(PublishToMavenLocal)})
In Gradle 2.3 with the above defined in your root build it will execute all subproject PublishToMavenLocal
tasks. In Gradle 2.5 it executes none of them.