Bazel: Support building with Java 9
Bazel@HEAD supports Java 9. The current code has one single issue with Java 9 compliance: the usage of javax.xml.bind.DatatypeConverter class for printHexBinary() method. This class is not available on Java 9. One alternative is to use guava library. Something similar was done here: [1]. But unlike the case with checkstyle library, JGit currently doesn't use guava. Instead, we add java.xml.bind module with --add-modules compiler option. To build (or test) 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 :all The Java 9 support is backwards compatible. * [1] https://github.com/checkstyle/checkstyle/issues/5027 Change-Id: I2c5203fc4e65885ce7b210f824fda85ba6d6c51d Signed-off-by: David Ostrovsky <david@ostrovsky.org>
This commit is contained in:
parent
6766fc85d0
commit
ab1b97234d
7
BUILD
7
BUILD
|
@ -1,5 +1,12 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
config_setting(
|
||||
name = "jdk9",
|
||||
values = {
|
||||
"java_toolchain": "@bazel_tools//tools/jdk:toolchain_jdk9",
|
||||
},
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "all",
|
||||
testonly = 1,
|
||||
|
|
|
@ -14,6 +14,10 @@ RESOURCES = glob(["resources/**"])
|
|||
java_library(
|
||||
name = "jgit",
|
||||
srcs = SRCS,
|
||||
javacopts = select({
|
||||
"//:jdk9": ["--add-modules=java.xml.bind"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
resource_strip_prefix = "org.eclipse.jgit/resources",
|
||||
resources = RESOURCES,
|
||||
deps = [
|
||||
|
|
Loading…
Reference in New Issue