Bazel 如何使用Stardoc为多个文件生成文档?

Bazel 如何使用Stardoc为多个文件生成文档?,bazel,Bazel,我无法使用Stardoc 0.3.0和bazel 0.24.1在单独的文件中为多个bazel规则生成文档 这是我的设置。在单独的文件中有三条bazel规则 BUILD bzl\u库( name=“bzl”, srcs=[“antlr2.bzl”、“antl3.bzl”、“antl4.bzl”], deps=[ “@bazel_skylib/:bzl_库”, ], ) stardoc( name=“单个单据”, input=“antlr2.bzl”, out=“antlr2_single.md”,

我无法使用Stardoc 0.3.0和bazel 0.24.1在单独的文件中为多个bazel规则生成文档

这是我的设置。在单独的文件中有三条bazel规则

BUILD

bzl\u库(
name=“bzl”,
srcs=[“antlr2.bzl”、“antl3.bzl”、“antl4.bzl”],
deps=[
“@bazel_skylib/:bzl_库”,
],
)
stardoc(
name=“单个单据”,
input=“antlr2.bzl”,
out=“antlr2_single.md”,
)
stardoc(
name=“多文档”,
input=“doc.bzl”,
out=“doc.md”,
deps=[“:bzl”],
)
和一个要加载它们的文件:

doc.bzl

load("//antlr:antlr2.bzl", "antlr2")
load("//antlr:antlr3.bzl", "antlr3")
load("//antlr:antlr4.bzl", "antlr4")
它会生成,但生成的文件基本上是空的:

doc.md


如果我按照文档中的建议进行操作:

BUILD

。。。
stardoc(
name=“多文档”,
input=“doc.bzl”,
out=“doc.md”,
)
我收到一个错误:

Exception in thread "main" java.lang.IllegalStateException: File antlr/doc.bzl imported '//antlr:antlr2.bzl', yet antlr/antlr2.bzl was not found, even at roots [.].
    at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:420)
    at com.google.devtools.build.skydoc.SkydocMain.eval(SkydocMain.java:338)
    at com.google.devtools.build.skydoc.SkydocMain.main(SkydocMain.java:205)
Caused by: java.nio.file.NoSuchFileException: antlr/antlr2.bzl
    at com.google.devtools.build.skydoc.SkydocMain.getInputSource(SkydocMain.java:453)
    at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:404)
    at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:416)
    ... 2 more

我是做错了什么还是这是一个错误


顺便说一句,单文件目标
单文档
生成正确。

我终于找到了答案。不知道这是将来要更改/修复的还是尚未正确记录的:你必须为规则别名

doc.bzl

load("//antlr:antlr2.bzl", "antlr2")
load("//antlr:antlr3.bzl", "antlr3")
load("//antlr:antlr4.bzl", "antlr4")
load(“//antlr:antlr4.bzl”,\u antlr4=“antlr4”)
加载(“//antlr:antlr2.bzl”,_antlr2=“antlr2”)
加载(“//antlr:antlr3.bzl”,_antlr3=“antlr3”)
antlr4=_antlr4
antlr3=_antlr3
antlr2=_antlr2