bazel-contrib / bazel-contrib/rules_jvm_external
Consider an optional switch to turn all `deps` into `exports`, allowing access to all transitive classes just by depending on the top level artifact
- Dominant language
- Java
- Stars
- 373
- Forks
- 301
- Avg merge
- 6d 3h
- Merged PRs (30d)
- 5
Description
This was motivated by a conversation with @simonstewart for better developer ergonomics and gradual adoption, because this is what Maven and Gradle users are used to.
The general idea is to depend on just the top level dependency, and get all the classes in the transitive classpath for free. This was previously implemented by @davidsantiago in https://github.com/jin/rules_maven/pull/9, but we removed it in https://github.com/jin/rules_maven/pull/16 with the concerns stated in the first comment and @dkelmer's comment in https://github.com/jin/rules_maven/pull/16#pullrequestreview-210447108
We should consider the tradeoffs between ergonomics and the growth of classpath complexity. This can be an opt-in feature with major disclaimers on its implications.
Contributor guide
Assessment
This issue has not been assessed yet.