更不便的在微信公众号阅读文章能够关注公众号:海生的go花园
一、装置protoc以及插件
在第二章,咱们介绍了,如何写一个.proto文件。
当咱们有了一个.proto文件,揭晓来,咱们就是应用protoc命令编译.proto文件,生成对应go文件。
1.1 装置protoc命令
brew install protobuf
1.2 装置protobuf插件
1.2.1、装置protoc-gen-go插件,--go_out
选项
用来生成.pb.go文件,用来解决message等失常的类型。
go install google.golang.org/protobuf/cmd/protoc-gen-go
1.2.2、装置protoc-gen-go-grpc插件,--go-grpc_opt
选项
用来解决grpc相干的程序。
google.golang.org/grpc/cmd/protoc-gen-go-grpc
二、应用protoc命令生成go代码
2.1 初始化go我的项目
首先咱们关上grpc-demo1目录(在第二章创立的),而后go mod init。初始化这个go我的项目。
$ cd grpc-demo1$ go mod init github/hisheng/grpc-demo1
此时查看咱们的目录,执行tree命令。
➜ grpc-demo1 git:(master) $ tree.├── api│ └── hello.proto├── go.mod└── go.sum1 directory, 3 files
咱们的目录多了 go.mod文件以及go.sum。
2.2 应用protoc命令生成go代码
当初终于到了咱们生成理论go代码的时候了,让咱们在grpc-demo1执行如下命令。
protoc --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ api/hello.proto
咱们终于执行了protoc命令了,此时咱们减少了两个参数选项。
--go_out 生成了 hello.pb.go 文件--go-grpc_out 生成了 hello_grpc.pb.go 文件
此时咱们再查看grpc-demo1,执行tree命令
➜ grpc-demo1 git:(master) ✗ tree.├── api│ ├── hello.pb.go│ ├── hello.proto│ └── hello_grpc.pb.go├── go.mod└── go.sum1 directory, 5 files
能够看到刚生成的hello.pb.go和hello_grpc.pb.go两个go文件。
2.3 应用go mod tidy 下载依赖库
咱们发现hello.pb.go,以及hello_grpc.pb.go文件中,有一些go依赖没有下载。此时再下载一下。
在grpc-demo1目录执行
go mod tidy
至此,咱们生成的go代码,就没有问题了。