The Day Gazelle Leaked Its Abstractions - A rules_jvm Story
November 11, 2025
Bazel
Gazelle
rules_jvm
Every now and again, I find myself in the mood to test the limits of the Gazelle extension API. As far as abstractions go, I like it!
It’s one of those APIs that always seems too simple at first glance, too limited. There’s no way this weird thing I need to do will fit neatly into it, right? Right?
Well, it always turns out that yes, indeed, my case was supported and fit in quite well. And no, please, don’t break out of the abstractions because it’ll mess up with the execution order of Gazelle. Props to the authors, because there always seemed to be a magic parameter of a method that was typed just loosely enough that I could hook into it and do exactly what I need.
That is, until I tackled java_exports.