我可以在我的 bazel 目标中提供一个相对的 deps 路径吗?

Tre*_*key 4 dependencies directory-structure build filepath bazel

当我在 bazel 中指定构建规则时,我的依赖项要么是完整路径(来自 repo 的根目录),要么只是目标名称(因为它在同一目录中):

cc_binary(
    name = "program",
    srcs = ["main.cpp"],
    deps = ["//a/full/path/to/the/library:lib",
            "foo"]
)
Run Code Online (Sandbox Code Playgroud)

假设我正在从 directory 编写构建规则"the"
我希望做这样的事情:

cc_binary(
    name = "program",
    srcs = ["main.cpp"],
    deps = ["library:lib",
            "foo"]
)
Run Code Online (Sandbox Code Playgroud)

这似乎是不可能的。有什么方法可以从 BUILD 文件的位置开始指定更深的目标吗?

Itt*_*tai 5

你不能。

相对标签不能用于引用其他包中的目标;在这种情况下,必须始终指定完整的包名称

来自Bazel 标签文档

  • 对于 bazel 来说,这可能是一个不错的决定,但在某些情况下仍然会带来不便。 (3认同)