我可以依赖所有匹配模式的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)的查询