exported_plugins is "The list of java_plugins (e.g. annotation processors) to export to libraries that directly depend on this library." That makes it suitable for plain old annotation processors (since you can't write an annotation in your code without depending directly upon it) and for static analysis that applies to such annotation usages, but it does not make it suitable for cases like ours, "No one calls a @Beta method from Guava," since it's possible to call a @Beta method on Guava without declaring a direct dependency on Guava itself.
The practical danger here is slim, since Guava has few @Beta APIs nowadays. But it might be more honest to remove exported_plugins or to find another way of fully enabling the checking that we want. Really, though, I'm filing this bug because TIL from a question on YAQS :) See also some Google-internal documentation added in CL 149351089 (though the Bazel docs are crystal-clear on the behavior, even if they don't go into the implications in detail).
exported_pluginsis "The list ofjava_plugins(e.g. annotation processors) to export to libraries that directly depend on this library." That makes it suitable for plain old annotation processors (since you can't write an annotation in your code without depending directly upon it) and for static analysis that applies to such annotation usages, but it does not make it suitable for cases like ours, "No one calls a@Betamethod from Guava," since it's possible to call a@Betamethod on Guava without declaring a direct dependency on Guava itself.The practical danger here is slim, since Guava has few
@BetaAPIs nowadays. But it might be more honest to removeexported_pluginsor to find another way of fully enabling the checking that we want. Really, though, I'm filing this bug because TIL from a question on YAQS :) See also some Google-internal documentation added in CL 149351089 (though the Bazel docs are crystal-clear on the behavior, even if they don't go into the implications in detail).