您正在查看的内容可能已经在
new_git_repository
存储库规则,或
git_repository
如果Github项目已经有bazel,则为规则
BUILD
文件已连接。
如果Github项目
不
有生成文件,使用时需要生成文件
新的Git存储库
. 例如,如果要依赖
file target
(e.g.
/foo/bar.txt
) or
rule target
(e.g. a
cc_library
)
在里面
https://github.com/example/repository
以及存储库
没有
有生成文件,在项目的
WORKSPACE
文件:
new_git_repository(
name = "example_repository",
remote = "https://github.com/example/repository.git",
build_file_content = """
exports_files(["foo/bar.txt"])
# you can also create targets
cc_library(
name = "remote_cc_library",
srcs = ["..."],
hdrs = ["..."],
""",
)
在你的
文件,使用
@
前缀:
cc_library(
name = "testrun",
srcs = ["main.c"],
data = ["@example_repository//:foo/bar.txt"],
deps = ["@example_repository//:remote_cc_library"],
)
当你跑步时
bazel build //:testrun
巴泽尔会……
-
分析
//:testrun
,其中包括文件
main.c
以及外部存储库中的目标
@example_repository
。
-
查找名为的外部存储库的工作区文件
example_repository
然后发现
新的Git存储库
宣言。
-
执行
git clone
上
remote
中指定的属性
示例\存储库
宣言。
-
写入包含
build_file_content
克隆存储库的项目根目录下的字符串。
-
分析目标
@example_repository//:foo/bar.txt
和
@example_repository//:remote_cc_library
-
建立依赖关系,并将它们交给
//:测试运行
抄送库
.
-
建造
//:测试运行
。
如果github项目
确实有
生成文件,不需要提供生成文件。在指定工作区依赖项之后,可以直接引用目标
Git_存储库
:
git_repository(
name = "example_repository",
remote = "https://github.com/example/repository.git",
)
有关更多信息,请查看Bazel的文档
External Repositories