You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目迁移Gradle KTS:Protobuf配置方法问询

Gradle KTS 版本 Protobuf 配置(对应原Groovy迁移)

先给出完整的迁移后代码:

// Versions
val protoBufVersion = "3.0.0"

protobuf {
    protoc {
        artifact = if (osdetector.os == "osx") {
            "com.google.protobuf:protoc:$protoBufVersion:osx-x86_64"
        } else {
            "com.google.protobuf:protoc:$protoBufVersion"
        }
    }
    plugins {
        create("javalite") {
            artifact = if (osdetector.os == "osx") {
                "com.google.protobuf:protoc-gen-javalite:$protoBufVersion:osx-x86_64"
            } else {
                "com.google.protobuf:protoc-gen-javalite:$protoBufVersion"
            }
        }
    }
    generateProtoTasks {
        all.forEach { task ->
            task.builtins {
                remove("java")
            }
            task.plugins {
                create("javalite")
            }
        }
    }
}

关键语法差异说明

  • 变量定义:Groovy的def ProtoBufVersion替换为KTS的val protoBufVersion(遵循Kotlin小驼峰命名规范)
  • 插件配置:Groovy中直接写javalite {},KTS需要通过create("javalite")显式创建插件配置项
  • 任务遍历:Groovy的all().each替换为KTS的all.forEach
  • 内置插件移除:Groovy的remove java替换为KTS的remove("java")(KTS要求传入字符串参数)
  • 条件赋值:KTS支持if表达式直接赋值,写法更简洁,无需单独拆分if-else块

前置依赖确认

确保项目已引入必要插件(根目录build.gradle.kts或settings.gradle.kts中配置):

plugins {
    id("com.google.protobuf") version "0.9.4" // 版本可按需调整,需与protobuf版本匹配
    id("com.google.osdetector") version "1.7.1"
}

内容的提问来源于stack exchange,提问作者Hector

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:12:44