MAC安装protoc及生成grpc-java代码
使用Protocal Buffers
1. 安装protoc
brew install automake
brew install libtool
brew install protobuf
2. 检查
protoc --version
3. 生成grpc-java分三步
第一步,编辑proto文件(dlgrpc.proto)
syntax = "proto3";
//把不同的类生成到不同的文件,false只产生一个文件 option java_multiple_files=true;
//如果不指定类名,编译会生成一个.proto文件同名的类。
option java_outer_classname="DLProto";
//生成proto文件定义的rpc方法以及客户端stub(这个对gRPC没有用)
//option java_generic_services = true;
// option java_package="com.nuctech.saturn.grpc"; service Platform{ rpc getDl(DlRequest) returns (DlReply){} } message DlRequest{ string id=1; string name=2; } message DlReply{ string res=1; }
第二步, 生成message相关的类
protoc --java_out=./ dlgrpc.proto
//DLProto.java
//DlReply.java
//DlReplyOrBuilder.java
//DlRequest.java
//DlrequestOrBuilder.java
第三步, 生成service相关的类(包括服务端的抽象类PlatformImplBase以及客户端的PlatformBlockingStub类)(注意先看第5,安装plugin)
protoc --plugin=protoc-gen-grpc-java=/path/protoc-gen-grpc-java-1.45.1-osx-x86_64.exe --grpc-java_out=./ dlgrpc.proto
//PlatformGrpc.java
5. 安装plugin
在proto文件中添加 option java_generic_services = true 会生成一个Platform类,但这个类无法使用,需要plugin。
原因是protocal buffers不针对一个特定的RPC,使用gRPC需要对应的plugin
从 https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java/
下载 protoc-gen-grpc-java-1.45.1-osx-x86_64.exe
先去掉后缀exe,然后
chmod +x protoc-gen-grpc-java
还需要在设置中设置允许安装
(这个exe虽然去掉了,但是终端中仍然显示后缀,所以命令就写全了)
不修改chmod会报错
program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--grpc-java_out: protoc-gen-grpc-java: Plugin failed with status code 1.
(https://stackoverflow.com/questions/55023435/grpc-out-protoc-gen-grpc-plugin-failed-with-status-code-1-on-osx-java)
6. 生成的文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)