Compile and Tests, single-module project, 4 CPU laptop, as measured by GNU time. The value shown is the real (wall clock) time spend on the process.
Sbt and pants are quickest, by using all CPUs to the fullest. During the test, my system became unusable, the mouse crawling over the screen like a snail. Overall the other buildsystems doing parallelization show that 140 seconds is a reasonable number while keeping the system usable.
Several buildsystems recognize there is nothing to do, surprisingly pants is not among them. It does not compile again, but runs the tests again.
For this case I added a small no-op change to one source file.
Since this is a single-module build, all buildsystems run all tests again after a file change.
For this case I manually reverted the file to the state of the first build.
Rebuilding initial version takes again original time. According to documentation, bazel and buck can support caching for such scenarios, but for this an additional setup with a remote cache server is required.