如何解决Golang 模块:导入 proto 定义
我正在尝试学习 Go 模块依赖管理器,但在导入自动生成的 proto 定义时出错。已经为此苦苦挣扎了2天。任何帮助将不胜感激。 目录结构:
➜ ~/go-service-skeleton> tree .
.
├── protobuf
│ └── test_service
│ ├── test_service_config.pb.go
│ └── test_service_config.proto
├── src
│ └── test_service
│ ├── go.mod
│ ├── main.go
│ └── server
│ └── server.go
错误(最后一个错误尤其令人担忧):
➜ ~/go-service-skeleton/src/test_service go build
bootstrap.go:11:2: no required module provides package github.com/Sirupsen/logrus; to add it:
go get github.com/Sirupsen/logrus
bootstrap.go:12:2: no required module provides package github.com/sirupsen/logrus; to add it:
go get github.com/sirupsen/logrus
bootstrap.go:13:2: no required module provides package gopkg.in/yaml.v2; to add it:
go get gopkg.in/yaml.v2
server/server.go:8:2: package protobuf/test_service is not in GOROOT
~/go-service-skeleton/src/test_service echo $GOPATH
/Users/****/go-service-skeleton:/Users/****/go-service-skeleton/protobuf
~/go-service-skeleton/src/test_service echo $GOROOT
解决方法
在您的 test_service
模块中,go
命令唯一可见的依赖项是其 go.mod
文件中声明的依赖项。
最简单的解决方法是将您需要的所有源代码放在主模块中。请注意,根据 https://blog.golang.org/generate,“如果包含的包旨在由 go get
导入,则一旦文件生成(并经过测试!),必须将其签入源代码存储库才能供客户端使用。 ”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。