还在用kapt吗? 试试ksp吧 | 项目复盘

本文介绍了将项目从kapt迁移到Kotlin Symbol Processing (KSP)的过程,KSP作为轻量级的编译器插件API,提供了更快的编译速度和更简单的接入方式。作者详细讲述了从配置Gradle到实现编译器插件的每一步,并通过对比测试展示了KSP在编译耗时上的优势。文章适合对编译速度有要求的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:究极逮虾户
链接:https://juejin.cn/post/6939472660573192206

大家退后,今天我要开始表演一下装逼的艺术。这次我们尝试性的使用谷歌前一阵子公布的ksp(Kotlin Symbol Processing),一款专门拿来给Kotlin项目提升注解生成速度的。

ksp出来以前,对于这种注解解释器,我们使用的都是java所提供的AbstractProcessor,我在以前的文章介绍过关于AbstractProcessor相关的内容。这次我们就来啃一啃谷歌的新东西,毕竟只要我E的够快,谁的问好都追不上我。

Kotlin Symbol Processing (KSP) is an API that you can use to develop lightweight compiler plugins. KSP provides a simplified compiler plugin API that leverages the power of Kotlin while keeping the learning curve at a minimum. Compared to KAPT, annotation processors that use KSP can run up to 2x faster.

官方对于ksp的介绍就是,这是一个轻量级替换kapt的一个方案,优点就是速度更快,参数更少更简单一点。但是天下武功唯快不破啊,编译速度提升这种事情吧,毕竟都很难。

同时ksp相比于kapt接入方式也更清凉,还有就是它本身也支持增量编译等。有兴趣的老哥可以仔细阅读下谷歌对于ksp的介绍,下面是传送门

小贴士 ksp其实可以做到kapt中的ast的对类进行修改的操作哦,可以让各位牛逼的大佬大展拳脚,直接修改当前kotlin文件。

开始项目介绍吧

这次我们从头开始撸一个实现了ksp的compiler,至于代码就还是放在我们的路由组件内,毕竟如果从头写一个带注解的也有点不知所措,还是在历史的Demo上开发吧,下面是地址哦。

Router地址地址如下

由于官方文档中推荐我们使用gradle.kts,所以这次对项目整体进行了升级。这部分后续会更新另外一个文章,凡事还是逃不开真香定律的,这东西相比于Groovy对开发也更友善一点,毕竟kts还是强类型语言。

第一步

第一步比较简单,主要是对项目的根目录的Gradle进行配置上的修改,让我们可以顺利的获取到ksp的引用。虽然比较简单但是也比较关键,我完成kts的改造和顺利的引入ksp大概花了一个周末的时间,虽然有一部分时间我在带娃。

首先在项目的根目录下settings.gralde.kts文件下加入如下代码,划重点哦是settings.gradle.kts哦。

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        maven("https://dl.bintray.com/kotlin/kotlin-eap")
    }
}
复制代码

这个会帮助我们去获取ksp plugin的依赖。同时由于ksp的依赖于kotlin plugin 1.4.30版本,所以我们要对kt插件版本也进行一次升级。

build.gradle.kts下添加如下代码即可。

buildscript {
    repositories {
        j
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值