Gradle to Bazel + Q&A
summary
Gradle build for a small service set with 11 libraries, 19 microservices migrates to Bazel; biggest surprise is dependency drift (expected 5.0.4 but Gradle delivered 5.0.7) and Bazel surfaces those mismatches. Bazel uses rules_docker and its hermetic container builder, yields much faster cached runs, and requires explicit test targets (bazel test). Spring Boot support needed a forked rule (Spring Boot rule forked from Salesforce). Publishing JARs and some plugins require custom rules; reproducibility improves.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 0:41Speaker background
- 2:46Migrate Gradle to Bazel
- 5:17Dependency management challenges
- 8:50Debugging version mismatches
- 10:42Java compilation versions
- 11:44Dependency graphs in Bazel
- 12:46Custom tasks in Bazel
- 13:53Build file organization
- 14:36Running tests in Bazel
- 15:19Spring Boot builds
- 16:45MicroProfile support
- 17:53Docker images with Bazel
- 19:15Publishing JAR files
- 20:43Code quality tools
- 22:06Incremental builds
- 22:49Creating WAR files
- 23:32Custom rules and toolchains
- 23:53Gradle vs Bazel performance
- 27:30Gradle strengths and limits
- 28:11Bazel multi-language support
- 29:16Migration lessons learned
- 30:39Gradle vs Bazel mindset
- 31:01Q&A
related talks
41mThe wait is over. How to successfully migrate to Bazel from Maven or Gradle
20mAdopting Bazel in a quickly scaling organization
01h 01mIntroduction to Bazel
36mUsing Bazel for Fast, Correct Docker Deployments
26mBuilding Go with Bazel
17mGrazel - A Gradle plugin to automate Bazel migration for Android projects
22mBazel
01h 31mBazel
