是否可以使用 bazel 查询来输出隐式(或任何)规则的完整语法?
Is it possible to use bazel query to output the full syntax for an implicit (or any) rule?
我的目标是编写一个新的显式规则,该规则等同于内部规则但稍作修改(嵌入某些依赖项但不嵌入其他依赖项)。
假设我有如下规则:
java_binary(
name = "cipher_jar",
srcs = glob([
"*.java",
]),
...
)
有一个隐式规则如下所示:
bazel query "//cipher:cipher_jar_deploy.jar"
是否有一些 query
我可以 运行 强制 bazel 为这个隐式规则输出与上面的 java_binary
规则等效的内容?
看起来使用 --output=build
只是让我得到原始规则,而我想要一个明确告诉 bazel 嵌入依赖项的规则。
内置 Bazel Java 规则(例如 java_binary
和 java_library
的逻辑是用 Java 编写的,并且存在于 Bazel 二进制文件中。但是,对于 Java 规则使用的许多原始操作,有一个 Starlark API。这些可用于制定自定义 Java 规则。事实上,有一个正在进行的项目可以透明地用 Starlark 实现替换内置 Bazel Java 规则。
我的目标是编写一个新的显式规则,该规则等同于内部规则但稍作修改(嵌入某些依赖项但不嵌入其他依赖项)。
假设我有如下规则:
java_binary(
name = "cipher_jar",
srcs = glob([
"*.java",
]),
...
)
有一个隐式规则如下所示:
bazel query "//cipher:cipher_jar_deploy.jar"
是否有一些 query
我可以 运行 强制 bazel 为这个隐式规则输出与上面的 java_binary
规则等效的内容?
看起来使用 --output=build
只是让我得到原始规则,而我想要一个明确告诉 bazel 嵌入依赖项的规则。
内置 Bazel Java 规则(例如 java_binary
和 java_library
的逻辑是用 Java 编写的,并且存在于 Bazel 二进制文件中。但是,对于 Java 规则使用的许多原始操作,有一个 Starlark API。这些可用于制定自定义 Java 规则。事实上,有一个正在进行的项目可以透明地用 Starlark 实现替换内置 Bazel Java 规则。