gRPC--JAVA(編譯.proto)


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的工具類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM