rules_scala
rules_scala copied to clipboard
Add add_opens and add_exports support
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.
See https://github.com/bazelbuild/bazel/issues/20033 on a Bazel-side blocker for Scala rules to have add_exports / add_opens attributes.