是否可以使用Bazel Query输出隐式(或任何)规则的完整语法?可以使用、语法、规则、完整

由网友(言清欢)分享简介:我的目标是编写一个新的显式规则,该规则等同于内部规则,但稍作修改(嵌入某些依赖项,但不嵌入其他依赖项)。假设我有如下规则:java_binary(name = "cipher_jar",srcs = glob(["*.java",]),...)有一个隐式规则,如下所示:bazel query "//ciphe...

我的目标是编写一个新的显式规则,该规则等同于内部规则,但稍作修改(嵌入某些依赖项,但不嵌入其他依赖项)。

假设我有如下规则:

java_binary(
    name = "cipher_jar",
    srcs = glob([
        "*.java",
    ]),
    ...
)
从源代码编译bazel

有一个隐式规则,如下所示:

bazel query  "//cipher:cipher_jar_deploy.jar"

是否有一些query我可以运行以强制Bazel输出与此隐式规则的上述java_binary规则等价的内容?

看起来使用--output=build只是获取原始规则,而我需要一个显式告诉Bazel嵌入依赖项的规则。

推荐答案

内置Bazel Java规则(如java_binaryjava_library)的逻辑是用JAVA编写的,位于Bazel二进制文件中。然而,Java规则使用的许多基本操作都有一个Starlark API。这些规则可用于制定定制的Java规则。事实上,有一个正在进行的项目,用Starlark实现透明地替换内置的Bazel Java规则。

阅读全文

相关推荐

最新文章