由于proto文件太多,且前端和后端都需要生成的文件,每次修改和拷貝都很麻煩躏尉,寫個腳本自動生成,生成結(jié)束后分別拷貝至前端和后端文件夾中后众。
注:使用環(huán)境是c++胀糜,其他語言環(huán)境修改腳本參數(shù)即可。
環(huán)境準(zhǔn)備
不管你是自己編譯的grpc(gprc里面已經(jīng)包含了proto工程吼具,不需要單獨(dú)編譯proto工程)僚纷,還是下的現(xiàn)成的矩距,都要把對應(yīng)的bin文件夾加到系統(tǒng)環(huán)境變量path里面拗盒,方便使用。
一下是我的文件目錄锥债,作為參考即可:
文件夾下面一定要有
protoc.exe
陡蝇,因?yàn)槲业恼Z言環(huán)境是c++,所以還必須要有grpc_cpp_plugin.exe
哮肚。
cmd腳本
腳本會自動遍歷當(dāng)前文件下的所有proto文件登夫,進(jìn)行序列化,生成proto和grpc序列化文件允趟。生成結(jié)束后恼策,自動拷貝序列化文件到不同文件夾下。腳本如下:
@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 復(fù)制*.pb.h;*.pb.cc 到 %~dp0..\Defection-Client\Common\Proto
xcopy %~dp0\*.pb.?* %~dp0\..\Defection-Client\Common\Proto /y /f
echo 復(fù)制*.pb.h;*.pb.cc 到 %~dp0..\Defection-Server\Common\Proto
xcopy %~dp0\*.pb.?* %~dp0\..\Defection-Server\Common\Proto /y /f
echo 生成結(jié)束!
pause
使用說明:把該腳本放到proto文件夾下涣楷,腳本里面的參數(shù)按需修改即可!
警告
以上腳本按需獲取使用抗碰,禁止上傳至其他平臺獲利狮斗!