【问题标题】:grpc kotlin plugin is not generating dsl codegrpc kotlin 插件不生成 dsl 代码
【发布时间】:2021-11-26 07:03:29
【问题描述】:

我有一个使用 gradle 和 kotlin DSL 的现有项目。我已经使用 gradle build 设置了 protobuf 代码自动生成。

生成了 Kotlin grpc 代码,我可以使用流和协程来实现我的后端。

但是没有生成 kotlin DSL 代码。所以我目前只剩下使用详细的样板驱动构建器模式来创建我的对象。

以下是我的 protobuf 插件设置。

protobuf {

//    generatedFilesBaseDir = "generated-sources"
    protoc {
        artifact = "com.google.protobuf:protoc:3.17.3"
    }
    plugins {
        id("grpc") {
            artifact = "io.grpc:protoc-gen-grpc-java:1.39.0"
        }

        id("grpckt") {
            artifact = "io.grpc:protoc-gen-grpc-kotlin:1.2.0:jdk7@jar"
        }
    }
    generateProtoTasks {
        ofSourceSet("main").forEach {
            it.plugins {
                id("grpc") {}
                id("grpckt") {}
            }
        }
    }
}

我错过了什么吗?

【问题讨论】:

    标签: kotlin microservices grpc protobuf-java kotlin-dsl


    【解决方案1】:

    在网上找了很多答案,我从here找到了一个

    看起来 grpc 的实现者已经改变了插件的配置方式。 所以回答我自己的问题,这样可能会为下一个开发人员节省一些时间。

    protobuf {
    
        protoc {
            artifact = "com.google.protobuf:protoc:3.17.3"
        }
        plugins {
            id("grpc") {
                artifact = "io.grpc:protoc-gen-grpc-java:1.39.0"
            }
    
            id("grpckt") {
                artifact = "io.grpc:protoc-gen-grpc-kotlin:1.2.0:jdk7@jar"
            }
        }
        generateProtoTasks {
            ofSourceSet("main").forEach {
                it.plugins {
                    id("grpc") {}
                    id("grpckt") {}
                }
    
                it.builtins {
                    id("kotlin")
                }
            }
        }
    }
    

    关键是添加这个块。然后我的 protobuf 消息生成了 kotlin DSL 函数。

                it.builtins {
                    id("kotlin")
                }
    

    配置 Kotlin DSL 生成后,编译失败。然后我不得不添加 protobuf-kotlin 依赖。

    implementation("com.google.protobuf:protobuf-kotlin:3.19.1")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 2010-10-14
      • 2020-10-02
      • 2022-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多