bazelbuild / rules_proto

Protocol buffer rules for Bazel
Apache License 2.0
167 stars 69 forks source link

Support Not Generating Transitive Proto Dependencies #62

Open naturalwarren opened 4 years ago

naturalwarren commented 4 years ago

Alternative proto rulesets (namely stackb) support not generating Java byte code for proto_library.deps() via a transitive attribute.

Today, java_proto_library generates bytecode for both a proto_library's srcs and deps attributes. Generating bytecode for deps can lead to duplicate class exceptions if the consumer also tries to generate and pack the resulting class files into a JAR.

Would you consider supporting a transitive attribute for java_proto_library?

Yannic commented 4 years ago

AFAICT, this should be possible today if you define your own proto_lang_toolchain and adding the .proto files that are packed into the .jar to blacklisted_protos.

Generating code for transitive (non-blacklisted) protos is by design so you don't have to explicitly mirror the proto-graph for every language, so I think it's unlikely that a transitive attribute will be supported.