摆脱繁琐编译命令,实现proto编译自由
确保你有完整的GRPC运行环境(protoc,protoc-gen-go,protoc-gen-go-grpc),不完整的请自行安装,下面的安装方式可能有误,出现错误请查找网上教程
- protoc:下载最新的
protoc放入bin目录下 - protoc-gen-go:
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26(v0.0.3会自动下载) - protoc-gen-go-grpc:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1(v0.0.3会自动下载)
- 源码运行:下载源码到项目中任意目录,运行
main函数即可 - 命令行运行:下载源码编译或直接下载二进制包到项目文件,运行执行文件即可
- 自动运行:Goland自动编译proto文件
正确运行后命令行会提示:生成proto.go成功
根据proto文件会生成xxx.pb.go和xxx_grpc.pb.go
因为proto文件导入其他proto文件,以及文件目录和包名等一系列组合原因,可能出现正确编译,但生成的go文件出现包引用错误,定义proto文件时,option go_package为go.mod中的名称加项目内相对路径,需要导入包import填入被导入包在项目内相对路径,举个栗子🌰:
option go_package = "proto_build/server/proto/file"; // proto_build为项目名称,server/proto/file为项目内相对路径
import "server/proto/cascade/cascade.proto"; // server/proto/cascade/cascade.proto 项目内相对路径