更方便的在微信公众号阅读文章可以关注公众号:海生的go花园
一、前言
在第三章,我们已经学会了使用protoc命令,生成go文件。代码如下:
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
api/hello.proto
protoc命名需要列出 .proto文件,如果我们有多个文件,或者我们想多个文件夹,怎么办?
此时我们可以借助Makefile来,执行一些脚本,自动生成go代码。
二、使用Makefile来生成protoc命令。
我们在grpc-demo1目录新建一个Makefile文件。
touch Makefile
此时查看grpc-demo1目录,结构如下:
➜ grpc-demo1 git:(master) ✗ tree
.
├── Makefile
├── api
│ ├── hello.pb.go
│ ├── hello.proto
│ └── hello_grpc.pb.go
├── go.mod
└── go.sum
1 directory, 6 files
多了一个 Makefile文件。
我们生成一个make protoc命令,代码如下,写入到Makefile文件中。
protoc:
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
api/hello.proto
写好后,我们在grpc-demo1目录执行下:
$ make protoc
此时这个make protoc命名代替了 protoc 命令一大堆参数,简化了我们的复杂度。
要生成go文件只要执行一下就行。