我可以依赖所有匹配模式的Bazel目标,而不单独列出它们吗?

我可以依赖所有匹配模式的Bazel目标,而不单独列出它们吗?,bazel,Bazel,我的目录结构如下所示: some-root/ └── my-stuff/ ├── BUILD ├── foo/ │ └── BUILD ├── bar/ │ └── BUILD └── baz/ └── BUILD 我希望有一个像//some root/my stuff:update这样的目标,它运行所有//some root/my stuff/foo:update,//some root/my stuff/bar:upd

我的目录结构如下所示:

some-root/
└── my-stuff/
    ├── BUILD
    ├── foo/
    │   └── BUILD
    ├── bar/
    │   └── BUILD
    └── baz/
        └── BUILD
我希望有一个像
//some root/my stuff:update
这样的目标,它运行所有
//some root/my stuff/foo:update
//some root/my stuff/bar:update
//some root/my stuff/baz:update

我可以通过将每个目标列为依赖项来实现这一点。但是,如果我有很多这样的目录,并且我希望能够添加更多,这将成为一件痛苦的事情(很容易添加一堆子目录,而错过将一个子目录添加到父
BUILD
文件中)


是否有方法执行通配符标签或从文件路径中查找标签?我可以做
bazel测试//一些root/my stuff/…
来运行路径下的所有测试,但是我似乎不能在
构建
文件中使用这种模式,我想要的更像是
bazel run//some root/my stuff/…:update
,这也不起作用。

您可以从命令行获得所有名为
update
的标签:

bazel query "attr(name, '^update$', //...)"
并获取查询的输出并手动编辑依赖项

但不幸的是,您不能将其放入(将生成要依赖的目标列表),因为

不允许包含通配符目标规范(例如//pkg:*或//pkg:all)的查询