bazel
filegroup:
visibility:

WORKSPACE

定义项目的起始

java_binary

当前的可执行文件,必须包含main_class项

java_library

定义Java lib库

cc_library

定义C lib库

glob

当前所有目录

1
glob(["**/*.java"])

srcs 指定当前的源码文件

1
2
3
srcs = [
"src/main/java/com/example/ProjectRunner.java"
],

main_class 指定当前的主类;

1
deps = [":greeter"],

visibility 可以对其他库是否可见

当前库对src/main/java/com/example/cmdline是可见的

1
visibility = ["//src/main/java/com/example/cmdline:__pkg__"],

###copts
把项目的目录添加到头文件的搜索目录列表中

1
copts = ["-Ithird_party/some_lib"],

传递依赖

只需要把直接依赖的以依赖方式引入

1
deps = [":flour"],

依赖预编译的so文件

1
2
3
4
5
cc_library(
name = "mylib",
srcs = ["mylib.so"],
hdrs = ["mylib.h"],
)