Можно ли использовать базовый запрос для вывода полного синтаксиса неявного (или любого) правила?
Моя цель - написать новое явное правило, которое эквивалентно внутреннему правилу, но с небольшой модификацией (встроить определенные зависимости, но не другие).
Предположим, у меня есть такое правило:
java_binary(
name = "cipher_jar",
srcs = glob([
"*.java",
]),
...
)
Есть неявное правило, которое выглядит следующим образом:
bazel query "//cipher:cipher_jar_deploy.jar"
Есть ли
query
Я могу бежать, чтобы заставить bazel вывести что-то эквивалентное
java_binary
Правило выше для этого неявного правила?
Похоже, используя
--output=build
просто дает мне исходное правило, а мне нужно правило, которое явно указывает bazel встраивать зависимости.
1 ответ
Логика для встроенных правил Bazel Java, таких как
java_binary
и
java_library
написан на Java и живет в двоичном файле Bazel. Однако существует API Starlark для многих примитивных операций, используемых правилами Java. Их можно использовать для создания собственных правил Java. Действительно, в настоящее время продолжается проект по прозрачной замене встроенных правил Bazel Java реализацией Starlark.