gRPCKotlinCodegen Plugin for Protobuf编译器它只生成一个类

pdkcd3nj  于 2023-06-24  发布在  Kotlin
关注(0)|答案(1)|浏览(113)

我试图在Kotlin中为我的grpc客户端生成类,但它只生成一个类,我正在关注这个教程链接,我已经在我的ubuntu上安装了protoc,我将发布protoc-gen-grpc-kotlin.sh和我的proto。如果有人知道我哪里做错了,我会很感激的。
我的protoc-gen-grpc-kotlin.sh:

#!/usr/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
java -jar $DIR/protoc-gen-grpc-kotlin-1.3.0-jdk8.jar $@

我使用的是protoc-gen-grpc-kotlin-1.3.0-jdk8.jar插件
我的java版本是17,但我用版本8测试了它,它也不工作
My HelloService.proto:

syntax = "proto3";
package com.example.grpc;
option java_multiple_files = true;
//import "google/api/annotations.proto";

message HelloRequest {
    string firstName = 1;
    string lastName = 2;
}

message HelloResponse {
    string greeting =1;
}

service HelloService {
    rpc hello (HelloRequest) returns (HelloResponse) {}
//    rpc hello(HelloRequest) returns (HelloResponse){
//        option (google.api.http) = {
//            post: "/demo/item"
//            body: "*"
//        };
//    }
}

protoc命令:

protoc --kotlin_out=. --java_out=. --plugin=protoc-gen-kotlin=protoc-gen-grpc-kotlin.sh --proto_path=. HelloService.proto

通常会生成Java类,但仅创建一个Kotlin服务
谢谢!

46scxncf

46scxncf1#

听起来你没有正确地编译或生成Java proto和gRPC类,这些类是使用gRPC forKotlin所必需的。您所展示的代码应该只生成一个Kotlin文件,这是正常的。
(If你正在为你的proto消息等寻找KotlinDSL,这是protobuf的一个单独功能,而不是gRPC。

相关问题