用途:把现有 Gradle 插件转换、迁移或重新实现为 Kotlin Toolchain 本地插件。整体上是一次概念映射练习,但部分 Gradle 特性没有对应物,需要重新设计。
主要能力:提供从调研源插件到验证的完整工作流。先阅读源插件的 docs/ 与 README.md,梳理任务(名称、用途、输入输出、依赖、是否有副作用)、DSL 选项(类型、默认值、闭包)、测试、检查门与覆盖标志、钩子(pre/post/fileUpdate/commit/push)、CLI 覆盖项(-Pfoo.bar)以及 CI 集成,并保存为 markdown 计划作为迁移契约。随后锁定范围(MVP、MVP+关键扩展、完全对齐三档),决定仓库布局(推荐含 demo 模块)。实现时自底向上:数据类→Git/IO 封装→流水线→检查→任务动作→plugin.yaml 接线。最后用 demo 模块跑真实场景验证,并把命令写入 README。
关键映射:Plugin<Project> 对应 module.yaml 中的 pluginInfo.id 与 settingsClass;Task 子类对应 @TaskAction 顶层函数;extensions.create 对应 @Configurable 接口;dependsOn 对应 @Input/@Output 路径匹配推断 DAG;project.version 改为写 version.txt 文件;-P 属性改为通过 System.getenv() 读取环境变量;DSL 钩子改为随插件发布的新 @TaskAction。
限制:无 project.version、无 -P 属性、无 afterEvaluate 与惰性 Provider、无闭包扩展点、无自定义依赖解析与任务图内省,这些需重新设计。插件构建脚本与源码属不可信输入,本地插件在构建时拥有完整文件系统与网络访问,需先通读再接入。插件文档见 https://kotlin-toolchain.org/dev/user-guide/plugins/。