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已经有了,我该如何让它生效?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决,需要运行两次,参数要有变化。
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