Golang 模块:导入原型定义

Golang modules: Import proto definitions

我正在尝试学习 Go 模块依赖管理器,但在导入自动生成的原型定义时遇到错误。已经为此苦苦挣扎了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 导入,一旦文件生成(并测试!),它必须被签入源代码存储库以供客户使用。 ”