Related to Incremental - idempotent builds would be good. Having been exposed to Google's Blaze (now Bazel in OSSland) and directed graph build system science (as opposed to recursive build systems) there's a great efficiency from skipping parts of a build that don't need to be done.
Also related to incremental - https://github.com/khmarbaise/incremental-module-builder goes some way. It doesn't do changes in dep triggering a build (or not), I don't think. It also can't work out the difference between the heavy phases of a module's build that are independently skipable (compile, test compile, jar, shade, etc). - Paul
