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.htmlbazel [<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
评论
发表评论