Bazel的用户手册

手册

https://docs.bazel.build/versions/master/user-manual.html

运行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.

命令行参考

https://docs.bazel.build/versions/master/command-line-reference.html
bazel [<startup options>] <command> [<args>]
or
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 WORKSPACE文件编写

Bazel的概念和技术

Bazel BUILD文件的编写