Bazel 一次构建多个目标

flo*_*olu 4 bazel bazel-rules

我想要一个能够一次构建多个目标的 Bazel 规则。所以基本上是这样的:

build_all(
  name = "build_all",
  targets = [
    "//services/service1:build",
    "//services/service2:build",
    "//services/service3:build",
  ]
)
Run Code Online (Sandbox Code Playgroud)

所以我只想跑

bazel build //:build_all
Run Code Online (Sandbox Code Playgroud)

使用一个简单的命令构建我的所有服务(测试也是如此)。但我找不到任何当前的解决方案。

有没有办法实现这一目标?

Ond*_* K. 11

这似乎filegroup是一个现成的规则,可能会被滥用:

filegroup(
  name = "build_all",
  srcs = [
    "//services/service1:build",
    "//services/service2:build",
    "//services/service3:build",
  ]
)
Run Code Online (Sandbox Code Playgroud)

否则,它允许您为一堆文件(标签)提供一个集体名称以方便地传递,但似乎与在命令行上使用的摘要目标一样有效。