微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

瞪羚+ protobuf问题:没有强制性提供程序:'GoLibrary'

如何解决瞪羚+ protobuf问题:没有强制性提供程序:'GoLibrary'

从瞪羚生成的BUILD文件中,运行bazel build //foo/bar/protos/...:时出现以下错误

ERROR: .../foo/bar/protos/BUILD.bazel:15:17: in deps attribute of go_proto_library rule //foo/bar/protos:protos_go_proto: '//baz/quux/api:api_proto' does not have mandatory providers: 'GoLibrary'

两个BUILD文件都具有:

load("@rules_proto//proto:defs.bzl","proto_library")
load("@io_bazel_rules_go//go:def.bzl","go_library")
load("@io_bazel_rules_go//proto:def.bzl","go_proto_library")

我见过https://github.com/bazelbuild/rules_go/blob/master/go/providers.rst,但更令人困惑。

我也曾在Gophers Slack上问过这个问题,但那里的访问量很少。

解决方法

此错误意味着//baz/quux/api:api_protodeps规则的go_proto_library属性的目标种类错误(它没有“提供”正确的信息)。

//baz/quux/api:api_proto可能是proto_library的目标,并且应位于protos属性中,而不是deps属性中: https://github.com/bazelbuild/rules_go/blob/master/proto/core.rst#go_proto_library

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。