You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加github.com/openconfig/ygot v0.29.20后Bazel构建失败求助

解决Bazel构建失败问题

问题根源

ygot v0.29.20依赖的com_github_openconfig_gnmi外部仓库中,value目录未配置BUILD文件,导致Bazel无法识别该目录为合法包。

可行解决方案

1. 指定与ygot兼容的gnmi版本

在项目的WORKSPACE文件中,明确声明ygot v0.29.20依赖的gnmi具体版本(可查看ygot v0.29.20的go.mod文件获取对应版本),示例配置:

http_archive(
    name = "com_github_openconfig_gnmi",
    urls = ["https://github.com/openconfig/gnmi/archive/refs/tags/v0.12.0.tar.gz"],
    strip_prefix = "gnmi-0.12.0",
    sha256 = "替换为对应版本的SHA256哈希值",
)

2. 为gnmi的value目录添加BUILD文件

通过补丁规则给外部仓库的value目录补充BUILD配置:

  • 创建补丁文件gnmi_value_build.patch,内容如下:
diff --git a/value/BUILD.bazel b/value/BUILD.bazel
new file mode 100644
index 0000000..d41d8cd
--- /dev/null
+++ b/value/BUILD.bazel
@@ -0,0 +1,10 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+    name = "value",
+    srcs = ["value.go"],
+    importpath = "github.com/openconfig/gnmi/value",
+    visibility = ["//visibility:public"],
+)
  • 在WORKSPACE的http_archive配置中引入该补丁:
http_archive(
    name = "com_github_openconfig_gnmi",
    urls = ["你当前使用的gnmi包下载URL"],
    strip_prefix = "gnmi-对应版本号",
    patches = [":gnmi_value_build.patch"],
)

3. 切换ygot版本

升级或降级ygot到其他稳定版本,选择那些依赖的gnmi仓库已完整配置BUILD文件的版本,可避免此类依赖配置缺失问题。

内容的提问来源于stack exchange,提问作者crr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 16:40:56