Я использую 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",
],
)
Конфигурация удаленного выполнения использует rbe_autoconfig
из цепочек инструментов Bazel 0.29.8 и контейнер сборки по умолчанию.
Двоичный файлстроит нормально с 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 при запуске. В чем прикол?