我将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。诀窍是什么?