Skip to content

Commit

Permalink
Bazel: Support building with Java 9
Browse files Browse the repository at this point in the history
Fixes: #4256.

Bazel@HEAD supports Java 9.

The current code has one single issue with Java 9 compliance: the usage
of sun.misc package. We add jdk.unsupported module with --add-modules
compiler option for now. Long term, the usage of non public API should
be avoided.

To build with Java 9, build custom bazel version and issue:

  $ bazel --host_javabase=/usr/lib64/jvm/java-9-openjdk build \
    --javacopt='--release 9' \
    --java_toolchain=@bazel_tools//tools/jdk:toolchain_jdk9 \
   :protobuf_java
  • Loading branch information
davido committed Jan 31, 2018
1 parent b718551 commit 85b488f
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@ licenses(["notice"])

exports_files(["LICENSE"])

################################################################################
# Java 9 configuration
################################################################################

config_setting(
name = "jdk9",
values = {
"java_toolchain": "@bazel_tools//tools/jdk:toolchain_jdk9",
},
)

################################################################################
# Protobuf Runtime Library
################################################################################
Expand Down Expand Up @@ -608,7 +619,10 @@ java_library(
]) + [
":gen_well_known_protos_java",
],
javacopts = ["-source 7", "-target 7"],
javacopts = select({
"//:jdk9": ["--add-modules=jdk.unsupported"],
"//conditions:default": ["-source 7", "-target 7"],
}),
visibility = ["//visibility:public"],
)

Expand Down

0 comments on commit 85b488f

Please sign in to comment.