如何使用Kotlin DSL为JavaPluginExtension传参并转换Protobuf Groovy配置
Gradle Protobuf 配置 Groovy 转 Kotlin DSL 实现
下面是你提供的Groovy代码对应的Kotlin DSL完整实现:
protobuf { protoc { artifact = "com.google.protobuf:protoc:3.8.0" } generateProtoTasks { all().forEach { task -> task.builtins { // 写法1:无额外导包,兼容性最高 create("java") { option("lite") } // 写法2:已导入protobuf DSL扩展时可直接使用,写法更直观 // java { // option("lite") // } } } } }
核心配置说明
你困惑的option "lite"配置在Kotlin DSL里有两个适配调整点:
- Groovy里支持省略括号的方法调用,在Kotlin语法里必须补全括号,对应改为
option("lite") - Groovy里自动识别的
java闭包方法,Kotlin DSL环境如果没有提前导入对应扩展,需要用create("java")显式创建Java内置生成器配置,避免编译报错。
内容的提问来源于stack exchange,提问作者Riajul
相关产品推荐
相关产品推荐

