Procházet zdrojové kódy

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>
tags/v4.11.0.201803080745-r
David Ostrovsky před 6 roky
rodič
revize
ab1b97234d
2 změnil soubory, kde provedl 11 přidání a 0 odebrání
  1. 7
    0
      BUILD
  2. 4
    0
      org.eclipse.jgit/BUILD

+ 7
- 0
BUILD Zobrazit soubor

@@ -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,

+ 4
- 0
org.eclipse.jgit/BUILD Zobrazit soubor

@@ -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 = [

Načítá se…
Zrušit
Uložit