> .proto生成java或其他語言
1. 首先看看一個簡單的service.proto文檔
~~~
syntax = "proto3";
option java_package = "com.zjm.gRpc.service"; //產生文件存放的包路徑
option java_outer_classname = "GRpcService"; //通訊類
option java_multiple_files = true; //是否產生多個類,如果false就會產生很多內部類
// 定義通用的 GRpc 服務,會生成CommonServiceGRpc,客戶端去里面的Stub,服務端要實現里面的handle,handle是里面定義的方法
service CommonService {
// 處理請求
rpc handle ( Request ) returns ( Response ) {} //這是定義的方法,參數會有Request這個類,返回Response這個類
}
// 定義通用的 GRpc 請求體
message Request {
int32 serialize = 1; //這個請求,會有一個序列化索引,用于服務端的序列化方法
bytes request = 2; //byte[],這個是請求的真正requestBody
}
// 定義通用的 GRpc 響應體
message Response {
bytes response = 1; //byte[],這個是請求的真正responseBody
}
~~~
1. Request和Response和GRpcService的model生成
```
cd G:\protoc-3.9.1-win64\bin
G:
protoc --java_out=./ service.proto
```
這時候會在當前目錄生成
com\zjm\gRpc\service目錄(這時候生成的是沒有CommonServiceGrpc這個service的)

2. 生成service(CommonServiceGrpc)
```
cd G:\protoc-3.9.1-win64\bin
G:
protoc --plugin=protoc-gen-grpc-java=./gen.exe --grpc-java_out=./ service.proto
```
會在com\zjm\gRpc\service生成CommonServiceGrpc
3. 我的目錄

記得去下載和你使用protobuff相同的protoc編譯器,我的是java里面使用的protobuff 3.7.1,所以下載的protoc是3.7.1([https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases))
然后去下載protoc-gen-grpc-java-1.10.0-windows-x86_64.exe(http://central.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.10.0/protoc-gen-grpc-java-1.10.0-windows-x86_64.exe)?,這個下載后放在bin里面