Goland proto文件 File Watch 自动生成

532 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

使用的是Kratos的项目模板生成的项目,目录结构如下: 在这里插入图片描述每次编写完Proto文件都要手动输入命令来生成go文件,使用Goland的File Watch监听文件改变,然后执行生成命令。

需要有File Watch这个插件 FileWatch 配置: 配置FileWatch 直接把命令行的参数替换成变量就行了。 生成使用的工具是protoc.exe

生成Proto *.pb.go是生成的接口代码 *_grpc.pb.go是grpc服务端接口

生成*.pb.go的目录为proto文件的option go_package = "post/internal/conf;conf"; 生成选项:proto路径(包括引用的package路径),使用--proto_path或-I命令行标志指定; 输出路径,使用--go_out指定*.pb.go(会跟上面的option go_package一起使用)、--go-grpc_out指定*_grpc.pb.go

生成proto源码: kratos proto client api/post/v1/post.proto =>生成 *_grpc.pb.go、*.pb.go

项目目录下运行: protoc --go_out=.. --go-grpc_out=.\api\server\v1 --go-grpc_opt=paths=source_relative -I=".\third_party" -I=".\third_party\google" -I=".\api\server\v1" HatService.proto =>生成 _grpc.pb.go、.pb.go

--go_out=$ProjectFileDir$\..
--go-grpc_out=$FileDir$
--go-grpc_opt=paths=source_relative
-I="$ProjectFileDir$\third_party"
-I="$ProjectFileDir$\third_party\google"
-I="$ProjectFileDir$\api\server\v1"
$FilePath$

$ProjectFileDir 是项目的目录 \FilePath$ 是监控到变更文件的路径 -I参数是添加包proto文件依赖

show console可以改为always来查看日志。 保存配置后每次修改都会自动生成go文件