可以通过在WORKSPACE文件中使用http_archive规则来解决。这个规则将指向URL的tarball解压到工作区,提供一个存储库内容的抽象。然后使用原生的标签定位器:cc_library,py_library等来定义构建,如下所示:
WORKSPACE文件:
http_archive(
name = "hidden_repo",
url = "http://some/internal/tarball",
)
BUILD文件:
cc_library(
name = "my_lib",
srcs = glob(["provider/src/**/*.cc"]),
hdrs = glob(["provider/include/**/*.h"]),
copts = ["-I./provider/include"],
visibility = [
"//visibility:public",
],
)
此方法将会从tarball加载代码,这意味着源代码将在编译/lib文件被生成之前清除。文件的绝对路径不会存在于生成规则中。