gxe*_*ela 14 java apt gradle kotlin kapt
我想知道在混合Java和Kotlin文件的Android项目中,我们必须使用annotationProcessor或kapt,还是两者兼而有之?
在我的理解中,annotationProcessor必须使用注释进行代码生成的Java文件,kapt必须使用注释生成代码来生成Kotlin文件.
我有一个混合两种语言的项目,我刚刚用kapt替换了build.gradle中的所有annotationProcessor依赖项.令人惊讶的是它构建并且似乎运行正常但我不明白为什么kapt即使使用Java文件也能正常运行...
有人可以向我解释一下吗?
谢谢
首先,Kotlin注释处理工具(kapt)使用Java编译器运行注释处理器。如果您的项目包含任何Java类,则kapt会设计使然。Kotlinlang建议使用kapt柜面你使用annotationProcessor从之前的Android的支持。
JetBrains上有一篇不错的文章,详细介绍了kapt的工作原理,该文章始于2015年,但截止日期为UP。
在Java中,您可以按如下所示指定注解处理器(或apt)依赖项:
dependencies {
...
annotationProcessor "com.google.dagger:dagger-compiler:$dagger-version"
}
Run Code Online (Sandbox Code Playgroud)
在Kotlin中,您必须添加kotlin-kapt插件以启用kapt,然后替换annotationProcessor为kapt:
apply plugin: 'kotlin-kapt' //Must include
dependencies {
...
kapt "com.google.dagger:dagger-compiler:$dagger-version"
}
Run Code Online (Sandbox Code Playgroud)
就这样!请注意,kapt会处理您的Java文件以及kotlin文件,因此您无需保留注解处理器依赖项。
有关更多详细信息:链接
| 归档时间: |
|
| 查看次数: |
3935 次 |
| 最近记录: |