使用protoc生成代码时缺少Grpc文件

问题描述 投票:0回答:1

我正在学习grpc。这是一个简单的 hello world 示例:

syntax = "proto3";

option java_multiple_files = true;
option java_package = "io.grpc.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";

package helloworld;

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

当我使用 gradle 的“com.google.protobuf”插件生成代码时,我得到:

└─proto
    └─main
        ├─grpc
        │  └─io
        │      └─grpc
        │          └─helloworld
        │                  GreeterGrpc.java
        │
        └─java
            └─io
                └─grpc
                    └─helloworld
                            HelloReply.java
                            HelloReplyOrBuilder.java
                            HelloRequest.java
                            HelloRequestOrBuilder.java
                            HelloWorldProto.java

当我使用 protoc(

protoc --plugin=protoc-gen-grpc-java --java_out=. .\src\main\proto\helloworld.proto
) 生成代码时,我得到:

└─io
    └─grpc
        └─helloworld
                HelloReply.java
                HelloReplyOrBuilder.java
                HelloRequest.java
                HelloRequestOrBuilder.java
                HelloWorldProto.java

我想知道我使用protoc时的GreeterGrpc.java在哪里

protocol-buffers grpc grpc-java protobuf-java
1个回答
0
投票

“--java_out”标志指定存储 Java 插件结果的位置,但您尚未指定任何地方来指定 gRPC 插件。

您还应该指定

--grpc-java_out=.

© www.soinside.com 2019 - 2024. All rights reserved.