1:創建.proto
syntax = "proto3"; //指定一個版本,這個必須是除了注釋以外,位於文件的第一行 package com.example.demo; //聲明一個服務 service Greeter { rpc sayHello (HelloRequest) returns (HelloReply) {} } //定義一個請求消息 message HelloRequest { string name = 1; } //定義一個相應消息 message HelloReply { string message = 1; }
2:添加配置信息
添加grpc包
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-all</artifactId> <version>1.10.1</version> </dependency>
添加.proto文件編譯工具
<build> <!--這個是為了下載下面的工具用的,他可以提供一些變量,os.detected.classifier變量可以根據當前系統的類型來下載對應的工具--> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.5.0.Final</version> </extension> </extensions> <plugins> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.5.0</version> <!--添加.proto文件的編譯工具--> <configuration> <!--protoc工具通過.proto文件生成對應的java對應的類--> <protocArtifact>com.google.protobuf:protoc:3.0.0-beta-4:exe:${os.detected.classifier}</protocArtifact> <!--protoc-gen-grpc-java工具通過.proto文件生成grpc工具類--> <pluginArtifact>io.grpc:protoc-gen-grpc-java:0.15.0:exe:${os.detected.classifier}</pluginArtifact> <!--這是生成grpc工具類存放的文件夾的名字--> <pluginId>grpc</pluginId> <!--要編譯的.proto文件的路徑--> <protoSourceRoot>src/main/resources/proto</protoSourceRoot> </configuration> <executions> <!--這是上面兩個編譯工具用到的命令--> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
用maven編譯一下
生成了兩個文件:
java文件夾是protoc編譯工具生成的代碼
grpc文件夾是protoc-gen-grpc-java編譯工具生成的工具類
GreeterGrpc是grpc的工具類