Как разрешить java_toolchain в базеле

Bazel обсуждает, как создавать наборы инструментов Java, например.

java_toolchain(
  name = "my_toolchain",
  encoding = "UTF-8",
  source_version = "8",
  target_version = "8",
  misc = [
    "-extra_checks:on",
  ],
)

из записи блога о настройке сборок Java. Но как разрешить цепочку инструментов Java из правила?

java_toolchain = ctx.toolchains["@bazel_tools//<something here>"]

Я ожидаю чего-то подобного вышеизложенному, но не смог найти документацию по bazel Страница документации по правилам Java.


person Oscar Boykin    schedule 21.06.2018    source источник


Ответы (1)


Вы правы, это был бы предпочтительный способ доступа к цепочке инструментов Java. К сожалению, правила Java в настоящее время не поддерживают разрешение цепочки инструментов, поэтому это невозможно, и доступ к цепочке инструментов Java потребуется через закрытый атрибут, который зависит от @bazel_tools//tools/jdk:current_java_toolchain. См. default_javacopts для примера.

Скоро начнется работа по решению этой проблемы, и мы обязательно сообщим сообществу, когда правила Java будут поддерживать разрешение цепочки инструментов, и это будет работать так, как вы ожидаете.

person John Cater    schedule 22.06.2018
comment
Джон, в этой работе тоже есть проблема с GH, верно? - person Ittai; 22.06.2018
comment
Я открыл github.com/bazelbuild/bazel/issues/5462, чтобы отслеживать это. . - person John Cater; 25.06.2018