由于proto文件太多,且前端和后端都需要生成的文件,每次修改和拷贝都很麻烦,写个脚本自动生成,生成结束后分别拷贝至前端和后端文件夹中。
注:使用环境是c++,其他语言环境修改脚本参数即可。
环境准备
不管你是自己编译的grpc(gprc里面已经包含了proto工程,不需要单独编译proto工程),还是下的现成的,都要把对应的bin文件夹加到系统环境变量path里面,方便使用。
一下是我的文件目录,作为参考即可:
文件夹下面一定要有
protoc.exe
,因为我的语言环境是c++,所以还必须要有grpc_cpp_plugin.exe
。
cmd脚本
脚本会自动遍历当前文件下的所有proto文件,进行序列化,生成proto和grpc序列化文件。生成结束后,自动拷贝序列化文件到不同文件夹下。脚本如下:
@echo off
for %%i in (*.proto) do (
echo 生成:%%~fi
protoc -I=%~dp0 --cpp_out=%~dp0 %%i
protoc -I=%~dp0 --grpc_out=%~dp0 --plugin=protoc-gen-grpc="C:\Program Files\grpc\bin\grpc_cpp_plugin.exe" %%i
)
echo 生成成功!
echo 复制*.pb.h;*.pb.cc 到 %~dp0..\Defection-Client\Common\Proto
xcopy %~dp0\*.pb.?* %~dp0\..\Defection-Client\Common\Proto /y /f
echo 复制*.pb.h;*.pb.cc 到 %~dp0..\Defection-Server\Common\Proto
xcopy %~dp0\*.pb.?* %~dp0\..\Defection-Server\Common\Proto /y /f
echo 生成结束!
pause
使用说明:把该脚本放到proto文件夹下,脚本里面的参数按需修改即可!
警告
以上脚本按需获取使用,禁止上传至其他平台获利!
网友评论