用途:该技能用于在 Kotlin 编译器仓库中升级 Kotlin Gradle 插件公共源码集所编译依赖的 Gradle API 版本。
主要步骤与能力:
- 确认目标版本:若无指定,需先向用户询问。当前值位于 repo/gradle-build-conventions/gradle-plugins-common/src/main/kotlin/gradle/GradlePluginVariant.kt 的 companion object 中,修改常量 GRADLE_COMMON_COMPILE_API_VERSION。
- 重新生成校验元数据:新 Gradle API 会引入新构件,需记录校验和。先检查 local.properties 是否含 kotlin.native.enabled=false,若有则临时注释;运行 ./scripts/update-verification-metadata.sh。该脚本会删除 gradle/verification-metadata.xml 的 components 段并执行 ./gradlew --write-verification-metadata sha256 -Pkotlin.native.enabled=true resolveDependencies。若脚本缺失或失败,可按 ReadMe.md 手动步骤处理(Linux 下用 sed 删除 components 段后再执行上述命令)。完成后恢复 local.properties。
- 编译并修复错误:运行 ./gradlew :kotlin-gradle-plugin:compileKotlin --quiet --console=plain --warning-mode=none 2>&1 | head -100,通过后再运行 ./gradlew :kotlin-gradle-plugin:classes。修复时先判断错误来自 src/common(影响所有 Gradle 版本)还是 src/gradleXXX(仅该变体),再依据 Gradle 发行说明查替换 API。
- 运行功能测试:执行 ./gradlew :kotlin-gradle-plugin:functionalTest --quiet --console=plain --warning-mode=none 2>&1 | tail -80,可用 --tests 指定失败类快速迭代,测试源码在 libraries/tools/kotlin-gradle-plugin/src/functionalTest/。
使用约束:项目要求所有文件操作使用 JetBrains MCP 工具(mcp__idea__*,如 read_file、apply_patch、search_text),而非标准 Read/Edit/Grep/Glob 工具。更新校验元数据可能耗时数分钟。修复编译错误常见类型包括被移除的内部类/方法、方法签名变化、新弃用 API。未提供的内容包括具体目标版本号、支持的 Gradle 版本范围及性能数据。