This seems like a very good idea. With the effective complete lack of incremental builds in Maven, it's frustrating to routinely spend several minutes re-verifying a PR after fixing a checkstyle warning in an extension module.
Another non-Apache alternative could be Bazel, which is even faster and better at incremental builds [1], but the performance difference is not *that* big and anyway both leave Maven far behind; and Gradle definitely has better integration with other parts of the Apache ecosystem and is more familiar to the community. So +1. [1] https://www.pgrs.net/2015/09/01/migrating-from-gradle-to-bazel/ On Mon, Oct 30, 2017 at 9:37 AM Lukasz Cwik <[email protected]> wrote: > I wanted to make this thread more visible. This discussion stems from Ken's > thread about Jenkins pre/post commit issues[1]. > > I did some investigation as for ways to improve the quality of the signal > from Jenkins by trying to modify the Jenkins jobs spawned from Groovy. I > had limited success but everything I felt like I was doing was just > patching symptoms of the problem which is that our build is just too slow. > For example, we keep adding all these profiles to Maven or tuning how a > plugin runs to eek out a small decrease in build time. I believe swapping > away from Apache Maven to a build tool which only builds the things which > have changed in a PR would be the best approach. > > I would suggest that we migrate to Gradle as our build tool. I am > suggesting Gradle because: > * It is used in lots of open source projects and has a very large community > behind it. > * It has better support for building languages other then Java > (PyGradle[2], GoGradle[3], ...) > * Its incremental build support works and only builds things that changed > through the use of a build cache. Even without the build cache (or for > clean builds), it is much faster. > * Apache Infra already has Gradle v4.x installed on the Jenkins machines. > > Any alternatives that should be considered or should we stick with Apache > Maven? > > 1: > > https://lists.apache.org/thread.html/25311e0e95be5c49afb168d9b4b4d357984c10c39c7b01da8ff3baaf@%3Cdev.beam.apache.org%3E > 2: https://github.com/linkedin/pygradle > 3: https://github.com/gogradle/gogradle >
