远程构建的java_binary不能在本地运行

时间:2019-10-11 21:26:37

标签: bazel

我将Bazel 0.29.1与远程执行结合使用来构建java_binary目标。它们是直接的目标,有一些来源和部门,例如

java_binary(
    name = "foo",
    main_class = "my.foo",
    runtime_deps = [
        "//my/foo",
        "//third_party/jvm/org/apache/logging/log4j:log4j_core",
    ],
)

远程执行配置正在使用Bazel工具链0.29.8中的rbe_autoconfig和默认的构建容器。

使用bazel --config=remote build //:foo可以很好地构建二进制文件。但是,使用bazel --config=remote run //:foo运行时失败:

/home/kgessner/.cache/bazel/_bazel_kgessner/[snip]/foo: line 359: /usr/lib/jvm/java-8-openjdk-amd64/bin/java: No such file or directory

java_binary包装器/启动器的Java路径错误:/usr/lib/jvm/java-8-openjdk-amd64/bin/java是构建容器中Java的路径,而不是本地路径。

我找不到合适的Java标志组合来完成这项工作:远程构建,但是在运行时使用本地JRE。诀窍是什么?

1 个答案:

答案 0 :(得分:0)

听起来像个虫子。你能file it on GitHub吗?