rules_scala icon indicating copy to clipboard operation
rules_scala copied to clipboard

Add add_opens and add_exports support

Open timothyg-stripe opened this issue 2 years ago • 1 comments
trafficstars

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 avatar Nov 02 '23 16:11 timothyg-stripe

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

timothyg-stripe avatar Nov 02 '23 23:11 timothyg-stripe