从源文件路径导出Bazel标签

时间:2018-07-03 11:32:15

标签: bazel

给出工作空间中源文件的路径,我如何得出Bazel用来引用该文件的标签。这似乎取决于存在哪些软件包。例如,如果我具有以下结构:

.
├── BUILD
├── WORKSPACE
└── src
    └── bar
        └── foo.go

然后,src/bar/foo.go的标签为//src/bar/foo.go。但是,如果我有这种结构:

.
├── BUILD
├── WORKSPACE
└── src
    ├── BUILD
    └── bar
        ├── BUILD
        └── foo.go

然后,同一文件的标签为//src/bar:foo.go

是否有一种方法可以让Bazel告诉我标识文件的标签是什么,或者我必须根据工作空间树各个级别上BUILD个文件的存在/不存在来派生它吗? / p>

1 个答案:

答案 0 :(得分:3)

如果path/to/file.txt存在有效标签,则运行bazel query path/to/file.txt将返回绝对标签。

例如对于第一个示例:

$ bazel query src/bar/foo.go
//:src/bar/foo.go

,第二个示例:

$ bazel query src/bar/foo.go
//src/bar:foo.go

如果任何BUILD文件中的任何规则(filegroupexports_files等)均未引用该文件,则该文件将没有标签。