如何在项目基础上永久设置此选项,这样我就不必一直提供它们?我可以通过intellij Bazel插件自动选择它的方式来这样做吗?
是。将其添加到
<project root>/.bazelrc所有使用本地JDK的版本中:
build --define=ABSOLUTE_JAVAbase=/usr/lib/jvm/java-8-openjdkbuild --host_javabase=@bazel_tools//tools/jdk:absolute_javabasebuild --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_vanillabuild --java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla
IntelliJ插件将自动获取这些信息。
或者,将它们分组在可以使用进行选择的
.bazelrc配置下,因此默认的无配置版本不受影响。
local_jdk``bazel build//:target --config=local_jdk
build:local_jdk --define=ABSOLUTE_JAVAbase=/usr/lib/jvm/java-8-openjdkbuild:local_jdk --host_javabase=@bazel_tools//tools/jdk:absolute_javabasebuild:local_jdk --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_vanillabuild:local_jdk --java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla
--host_javabase定义Java规则用于宿主工具编译的JDK的位置。
$ bazel query --output=build @bazel_tools//tools/jdk:absolute_javabasejava_runtime( name = "absolute_javabase", tags = ["__JAVA_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"], generator_name = "absolute_javabase", generator_function = "java_runtime", generator_location = "tools/jdk/BUILD:75", java_home = "$(ABSOLUTE_JAVAbase)",)
--host_java_toolchain定义用于宿主工具编译的Java工具集。
$ bazel query --output=build @bazel_tools//tools/jdk:toolchain_vanillajava_toolchain( name = "toolchain_vanilla", tags = ["__JAVA_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"], generator_name = "toolchain_vanilla", generator_function = "default_java_toolchain", generator_location = "tools/jdk/BUILD:367", source_version = "", target_version = "", bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"], misc = ["-XDskipDuplicateBridges=true", "-g", "-parameters"], jvm_opts = [], javac_supports_workers = True, javac = ["@bazel_tools//tools/jdk:javac_jar"], tools = ["@bazel_tools//tools/jdk:java_compiler_jar", "@bazel_tools//tools/jdk:jdk_compiler_jar"], javabuilder = ["@bazel_tools//tools/jdk:vanillajavabuilder"], singlejar = ["@bazel_tools//tools/jdk:singlejar"], genclass = ["@bazel_tools//tools/jdk:genclass"], ijar = ["@bazel_tools//tools/jdk:ijar"], header_compiler = ["@bazel_tools//tools/jdk:turbine"], header_compiler_direct = ["@bazel_tools//tools/jdk:turbine_direct"], forcibly_disable_header_compilation = True,)
--java_toolchain为目标定义用于Java编译的Java工具集。这独立
--host_java_toolchain于将编译宿主工具与实际源代码编译解耦。



