Bazel: Switch to using toolchain resolution for java rules

Bump Bazel version to release 5.0.0. In this new Bazel release,
--incompatible_use_toolchain_resolution_for_java_rules is flipped, that
means that the build must be adapted to toolchain resolution.

Specification toolchain resolution for java rules is here: [1]. Main
tracking Bazel issue is here: [2].

Given that new Bazel release also added support for remote JDK 17, add
experimental support for building with remote JDK 17 to produce major
byte code version 61.

Test Plan:

To build with remote JDK 11 run:

  $ bazel build :all

To build with remote JDK 17 run:

  $ bazel build --config java17 :all

[1] https://docs.google.com/document/d/1MVbBxbKVKRJJY7DnkptHpvz7ROhyAYy4a-TZ-n7Q0r4/edit?usp=sharing
[2] https://github.com/bazelbuild/bazel/issues/7849

Change-Id: I8d26dff722c6677ea7642913b61e416b23ea9041
This commit is contained in:
David Ostrovsky 2021-12-24 07:43:48 +01:00 committed by David Ostrovsky
parent c812947962
commit be732c16ab
4 changed files with 30 additions and 4 deletions

View File

@ -3,7 +3,18 @@ build --repository_cache=~/.gerritcodereview/bazel-cache/repository
build --experimental_strict_action_env
build --action_env=PATH
build --disk_cache=~/.gerritcodereview/bazel-cache/cas
build --java_toolchain //tools:error_prone_warnings_toolchain
# Builds using remote_jdk11, executes using remote_jdk11 or local_jdk
build --java_language_version=11
build --java_runtime_version=remotejdk_11
build --tool_java_language_version=11
build --tool_java_runtime_version=remotejdk_11
# Builds using remote_jdk17, executes using remote_jdk11 or local_jdk
build:java17 --java_language_version=17
build:java17 --java_runtime_version=remotejdk_17
build:java17 --tool_java_language_version=17
build:java17 --tool_java_runtime_version=remotejdk_17
test --build_tests_only
test --test_output=errors

View File

@ -1 +1 @@
4.0.0
5.0.0

View File

@ -1,7 +1,6 @@
workspace(name = "jgit")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("//tools:bazlets.bzl", "load_bazlets")
load_bazlets(commit = "f30a992da9fc855dce819875afb59f9dd6f860cd")
@ -11,6 +10,10 @@ load(
"maven_jar",
)
register_toolchains("//tools:error_prone_warnings_toolchain_java11_definition")
register_toolchains("//tools:error_prone_warnings_toolchain_java17_definition")
JMH_VERS = "1.32"
maven_jar(

View File

@ -5,7 +5,7 @@ load(
load("@rules_java//java:defs.bzl", "java_package_configuration")
default_java_toolchain(
name = "error_prone_warnings_toolchain",
name = "error_prone_warnings_toolchain_java11",
package_configuration = [
":error_prone",
],
@ -14,6 +14,18 @@ default_java_toolchain(
visibility = ["//visibility:public"],
)
default_java_toolchain(
name = "error_prone_warnings_toolchain_java17",
configuration = dict(),
java_runtime = "@bazel_tools//tools/jdk:remotejdk_17",
package_configuration = [
":error_prone",
],
source_version = "17",
target_version = "17",
visibility = ["//visibility:public"],
)
# Error Prone errors enabled by default; see ../.bazelrc for how this is
# enabled. This warnings list is originally based on:
# https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl