我有一个java注释处理器,它在编译期间生成一堆java文件 . 我已经在kotlin论坛上告诉我,我可以尝试的是写一个包含我的扩展功能的kotlin文件 . 我试过这个,我用 Filer
对象来创建这个文件,将它输出到StandardLocations.SOURCE_OUTPUT目录 . Intellij可以看到我生成的类,我可以按预期使用扩展函数,但应用程序赢了't compile because the compiler can't找到新的kotlin文件 . 有什么方法可以编写一个新的kotlin文件,它将被kotlin编译器选中吗?
2 回答
对于kapt,您可以通过获取源文件夹 .
不幸的是它对kapt2不起作用(见问题KT-14070)
您还可以通过资源编写器创建.kt文件
但是现在你需要调用编译器两次,因为在通过compileDebugJavaWithJavac任务调用javax注释处理器之前运行compileDebugKotlin任务)
将文件(使用正确的包名称)输出到
src/build/generated-src/kotlin/your/package/File.kt
之类的目录中并将其添加到
build.gradle
: