protoc不生成.proto中的service,只生成model相关类,求助。

win10系统,jdk1.8,protobuf3.5.1, gRPC1.10.0。

//message.proto

syntax = "proto3"; 

package filter.proto; 
option java_multiple_files = true;
option java_outer_classname = "MessageProto"; 


service FilterService{
    rpc FilterBlack(Mobile) returns (BlackResult) {}

}

message Mobile{
    string mobile = 1;
}
message BlackResult{
    bool  result=1;
}

protoc只生成Mobile,BlackResult相关代码,并不生成service相关的代码。

在网上查到必须要设置插件protoc-gen-grpc-java,找到一篇文章 从Protocol Buffers 到 gRPC
按照上面的操作下载gRPC的git代码自行编译,但是总是碰到错误,各种出错,大概因该是一些文件因为墙的原因下载失败。

于是我从 maven中央仓库下载了protoc-gen-grpc-java-1.10.0-windows-x86_64.exe ,与protoc.exe放在同一目录下。使用如下命令

 E:/RPC/protoc/bin/protoc  --plugin=protoc-gen-grpc-java=E:/RPC/protoc/bin/protoc-gen-grpc-java-1.10.0-windows-x86_64.exe
--proto_path=E:/Java/protobuf --java_out=E:/Java/protobuf   message.proto

但是仍然无法生成service的代码。现在这个插件protoc-gen-grpc-java-1.10.0-windows-x86_64.exe已经有了,我该如何让它生效?

阅读 13.8k
1 个回答

已解决,需要运行两次,参数要有变化。

  1. 生成model
    E:/RPC/protoc/bin/protoc --proto_path=E:/Java/protobuf --java_out=E:/Java/protobuf message.proto

2.生成service
E:/RPC/protoc/bin/protoc --plugin=protoc-gen-grpc-java=E:/RPC/protoc/bin/protoc-gen-grpc-java-1.10.0-windows-x86_64.exe
--proto_path=E:/Java/protobuf --grpc-java_out=E:/Java/protobuf message.proto

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题