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
>

Reply via email to