Gradle avoids recompilation by analyzing compile classpaths directly to detect ABI changes, rather than generating header JARs like Bazel does. This approach skips the expensive disk I/O of creating and packaging partial class files, and also enables finer-grained incremental compilation by knowing exactly which classes changed. Benchmarks on a synthetic 1000-project Java build show Gradle is significantly faster than Bazel for ABI-change scenarios. Additional optimizations in Gradle 8.1 (stable Configuration Cache) and 8.3 (persistent compiler daemons enabled by default) further improve build times for both ABI and non-ABI change scenarios.

12m read timeFrom blog.gradle.org
Post cover image
Table of contents
Table of ContentsIntroductionDefinitions #Comparing the approaches #Performance comparison #Conclusion #Notes #Discuss

Sort: