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

发布于 2022-09-06 15:50:52 字数 1198 浏览 14 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好久不见√ 2022-09-13 15:50:52

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

  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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文