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