您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

配置bazel以使用特定的JVM版本进行构建/测试

配置bazel以使用特定的JVM版本进行构建/测试

如何在项目基础上永久设置此选项,这样我就不必一直提供它们?我可以通过intellij Bazel插件自动选择它的方式来这样做吗?

是。将其添加<project root>/.bazelrc所有使用本地JDK的版本中:

build --define=ABSOLUTE_JAVABASE=/usr/lib/jvm/java-8-openjdk
build --host_javabase=@bazel_tools//tools/jdk:absolute_javabase
build --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla
build --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-openjdk
build:local_jdk --host_javabase=@bazel_tools//tools/jdk:absolute_javabase
build:local_jdk --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla
build:local_jdk --java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla

--host_javabase 定义Java规则用于宿主工具编译的JDK的位置。

$ bazel query --output=build @bazel_tools//tools/jdk:absolute_javabase

java_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_vanilla

java_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于将编译宿主工具与实际源代码编译解耦。

其他 2022/1/1 18:25:08 有515人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶