如何在 gRPC 中为 Java 手动生成客户端和服务器代码?

Posted

技术标签:

【中文标题】如何在 gRPC 中为 Java 手动生成客户端和服务器代码?【英文标题】:How does one generate client and server code manually for Java in gRPC? 【发布时间】:2019-10-19 12:25:06 【问题描述】:

official documentation 声明了以下关于生成客户端和服务器代码的内容。

接下来我们需要生成 gRPC 客户端和服务器接口 我们的 .proto 服务定义。我们使用协议缓冲区来做到这一点 带有特殊 gRPC Java 插件的编译器协议。您需要使用 proto3 编译器(同时支持 proto2 和 proto3 语法)在 为了生成 gRPC 服务。

不幸的是,它只是建议使用 Maven 或 Gradle 来生成实际的客户端和服务器存根。

这一代的实际protoc 命令行调用是什么?

【问题讨论】:

【参考方案1】:

gRPC Java Codegen Plugin for Protobuf Compiler 自述文件谈到了这一点:

编译 proto 文件并生成 Java 接口 服务定义:

$ protoc --plugin=protoc-gen-grpc-java=build/exe/java_plugin/protoc-gen-grpc-java \
  --grpc-java_out="$OUTPUT_FILE" --proto_path="$DIR_OF_PROTO_FILE" "$PROTO_FILE"

【讨论】:

以上是关于如何在 gRPC 中为 Java 手动生成客户端和服务器代码?的主要内容,如果未能解决你的问题,请参考以下文章

Java 开发 gRPC 服务和客户端

grpc proto文件生成java.net实体类以及客户端代码

如何从现有数据库中为 ORMlite 生成 java 类

java版gRPC实战之六:客户端动态获取服务端地址

如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?

gRPC 实现原理