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

Open
#147 22 comments 4 reactions 2 assignees Claimed by @shs96c View on GitHub
type: feature request
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.