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:
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.
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 throughjava_library(add_opens = [...], add_exports = [...])
, and these fields are read in Bazel'sjava_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
, andscala_import
supportadd_opens
andadd_exports
attributes also, but it's not as urgent as the first issue.