-
-
Notifications
You must be signed in to change notification settings - Fork 457
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ksp/kapt/annotationProcessor用法及区别 #447
Comments
大佬你这更新速度忒快了,我这本地kotlin还是1.5的,这更新的我想用只能升级Androidstudio版本,但又怕项目出问题,一直不敢动 |
我就当你是在夸我了,平均一个月更新一次,也还好;现在很稳定了,后续更新肯定会放缓 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
1、用法
对于ksp
1.8.0-1.0.9
版本, 1.8.0是kotlin版本,1.0.9是ksp的真实版本,如果想使用其它版本,请点击ksp版本列表2、相同点
ksp、kapt、annotationProcessor都是注解处理器,用于在编译期间,查找相关注解,生成相关代码
3、不同点
annotationProcessor
仅会检索Java代码,且没有用到注解时,不会工作;生成的代码在build/generated/ap_generated_sources
目录下kapt
是Kotlin时代的产物,会检索kotlin/java代码,但kotlin的一些专有属性拿不到,如const
关键字、伴生对象等在代码层面无法判断,同样的,没有用到注解时,不会工作;生成的代码在build/generated/source/kapt
目录下ksp
则是最新的注解处理器,编译速度号称是kapt
的2倍有余,且完全弥补了kapt/annotationProcessor
的缺陷,但纯Java项目用不了,必需要集成kotlin;生成的代码在build/generated/ksp
目录下4、如何选择
如果你要项目未集成kotlin,那没得选,只能用
annotationProcessor
, 如果集成了kotlin, 则可以选择ksp
或kapt
, 但ksp
弥补了kapt
的缺陷,且编译速度更快,肯定就选择ksp
,kapt
是时候退出历史舞台了The text was updated successfully, but these errors were encountered: