如何用Kotlin DSL配置Protocol Buffers 0.9.x?解决Gradle同步错误
解决Protobuf Gradle插件0.9.1的Kotlin DSL配置错误
问题原因
Protobuf Gradle插件从0.8.x升级到0.9.x后重构了配置API,原有的plugins.create("java")语法不再适用——标准代码生成插件(如Java、Kotlin)已作为任务的扩展属性直接暴露,无需手动创建,这就是你遇到ExecutableLocator with name 'java' not found错误的核心原因。
正确的Kotlin DSL配置
替换你当前的protobuf配置块为以下代码:
protobuf { protoc { // 建议使用正式版protoc,RC版本可能存在兼容性问题 artifact = "com.google.protobuf:protoc:21.0" } generateProtoTasks { all().forEach { task -> // 直接通过task的java扩展配置Lite选项 task.java { option("lite") } } } }
额外注意事项
- 确保依赖中使用的
protobuf-java-lite版本与protoc版本一致,避免版本不兼容:dependencies { implementation("com.google.protobuf:protobuf-java-lite:21.0") } - 如果需要生成Kotlin代码,配置方式类似:
task.kotlin { option("lite") }
内容的提问来源于stack exchange,提问作者Francesc
相关产品推荐
相关产品推荐

