Bazel用户手册

运行Bazel命令,需要去workspace的根目录或者它的子目录下。然后输入bazel即可。

下面列举一些用到命令:

  • build:build所指示的target
  • clean:删除输出文件以及可选停止服务
  • help:打印command的help信息
  • info:显示bazel服务运行时的信息
  • fetch:获取某个target的所有外部依赖
  • query:执行依赖图的查询
  • run:运行指定的target
  • shutdown:停止Bazel服务
  • test:build以及test指定的target
  • version:打印Bazel的版本号

具体获得更多帮助信息:

    bazel help <command>
                     Prints help and options for <command>.
    bazel help startup_options
                     Options for the JVM hosting Bazel.
    bazel help target-syntax
                     Explains the syntax for specifying targets.
    bazel help info-keys
                     Displays a list of keys used by the info command.

命令行参考

bazel [<startup options>] <command> [<args>]

或者

bazel [<startup options>] <command> [<args>] -- [<target patterns>]

选项语法:

传递参数值

--<option>=<value>
--<option> <value>

单字符形式

-<short_form> <value>

布尔值设置打开

--<option>
--<option>=[true|yes|1]

布尔值设置关闭

--no<option>
--<option>=[false|no|0

Target样式语法

不管在workspace的什么位置,以//为开头索引有如下情况:

//foo/bar:wiz单独的Target ‘//foo/bar:wiz’.

//foo/bar单独的省略Target ‘//foo/bar:bar’.

//foo/bar:all所有package ‘foo/bar’ 中的rules.

//foo/…在目录’foo’之下的所有package中所有rules.

//foo/…:all在目录’foo’之下的所有package中所有rules.

//foo/…:*在目录’foo’之下的所有package中所有rules和files.

//foo/…:all-targets在目录’foo’之下的所有package中所有rules和files.

这里说的rule就是明确在BUILD中所写的target,files是指包含一些不是通过rule常规build产生的:比如_deploy.jar文件等。所以*(或者all-targets)是all的超集。

不以//为开头索引,有如下情况:(假设在workspace的目录foo下面)

:foo Equivalent to ‘//foo:foo’.
bar:wiz Equivalent to ‘//foo/bar:wiz’.
bar/wiz Equivalent to: ‘//foo/bar/wiz:wiz’ if foo/bar/wiz is a package,
‘//foo/bar:wiz’ if foo/bar is a package,
‘//foo:bar/wiz’ otherwise.
bar:all Equivalent to ‘//foo/bar:all’.
:all Equivalent to ‘//foo:all’.
…:all Equivalent to ‘//foo/…:all’.
… Equivalent to ‘//foo/…:all’.
bar/…:all Equivalent to ‘//foo/bar/…:all’.

另外Target样式还支持’-‘用以排除指定的target,例如:

bazel build -- foo/... -foo/contrib/...

通过输入命令行也可以看到更多具体信息:

bazel help target-syntax

转载需保留链接来源:软件玩家 » Bazel用户手册

赞 (0)