摆脱繁琐编译命令,实现proto编译自由
确保你有完整的GRPC运行环境(protoc
,protoc-gen-go
,protoc-gen-go-grpc
),不完整的请自行安装,下面的安装方式可能有误,出现错误请查找网上教程
- protoc:下载最新的
protoc
放入bin
目录下 - protoc-gen-go:
go install google.golang.org/protobuf/cmd/[email protected]
(v0.0.3会自动下载) - protoc-gen-go-grpc:
go install google.golang.org/grpc/cmd/[email protected]
(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 项目内相对路径