bazelbuild / rules_scala

Scala rules for Bazel
Apache License 2.0
360 stars 273 forks source link

Add add_opens and add_exports support #1523

Open timothyg-stripe opened 10 months ago

timothyg-stripe commented 10 months ago

JDK 17 strongly encapsulates JDK internals, so many libraries need --add-opens= and --add-exports= JVM flags. Bazel's Java rules support adding those flags through java_library(add_opens = [...], add_exports = [...]), and these fields are read in Bazel's java_binary rule:

https://github.com/bazelbuild/bazel/blob/a2d3f20b577b8b5c7c5027a8a00f8c24a66228b9/src/main/starlark/builtins_bzl/common/java/java_binary.bzl#L173-L182

However it appears that the rules_scala doesn't read those fields when filling out the executable template:

https://github.com/bazelbuild/rules_scala/blob/421a9e8c9ea896d37949edf8d05e1e21aca03a94/scala/private/phases/phase_write_executable.bzl#L106

Additionally, it would be nice if scala_library, scala_binary, and scala_import support add_opens and add_exports attributes also, but it's not as urgent as the first issue.

timothyg-stripe commented 10 months ago

See https://github.com/bazelbuild/bazel/issues/20033 on a Bazel-side blocker for Scala rules to have add_exports / add_opens attributes.