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

发布时间:2022-09-20 / 作者:清心寡欲
本文介绍了是否可以使用Bazel Query输出隐式(或任何)规则的完整语法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

假设我有如下规则:

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

这篇关于是否可以使用Bazel Query输出隐式(或任何)规则的完整语法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!



[英文标题]Is it possible to use bazel query to output the full syntax for an implicit (or any) rule?


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。