我想通过 bazel 构建 Envoy?我在我的电脑中手动下载一些包,然后我将 http_archive 更改为 local_repository,但它告诉我名称“local_repository”未定义。local_repository 是否需要任何加载操作?
local_repository 可以在 WORKSPACE 中使用,但不能在我的 .bzl 文件中使用
WORKSPACE:
workspace(name = "envoy")
load("//bazel:api_repositories.bzl", "envoy_api_dependencies")
envoy_api_dependencies()
load("//bazel:repositories.bzl", "GO_VERSION", "envoy_dependencies")
load("//bazel:cc_configure.bzl", "cc_configure")
envoy_dependencies()
`repositories.bzl`:
local_repository(
name = "com_google_protobuf",
path = "/home/user/com_google_protobuf",
)
Run Code Online (Sandbox Code Playgroud)
local_repository是工作区规则,所以我认为它在WORKSPACE文件之外不可用。
如果你想local_repository从一个.bzl文件中调用,你可以在那里定义一个函数,使用native,然后从 调用它WORKSPACE,例如:
# repositories.bzl
def deps():
native.local_repository(
name = "com_google_protobuf",
path = "/home/user/com_google_protobuf",
)
Run Code Online (Sandbox Code Playgroud)
# WORKSPACE
load("//:repositories.bzl", "deps")
deps()
Run Code Online (Sandbox Code Playgroud)
例如,我在grpc项目中看到过这种模式。
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |