kotlin - 使用 kotlin 和 kapt 读取注释处理器中的资源
问题描述
我想使用需要src/main/resources
在处理过程中读取文件的注释处理器。使用 java 作为源时,它适用于以下配置:
tasks.withType<JavaCompile> {
options.sourcepath = files("src/main/resources")
}
我现在正在尝试将相同的注释处理器与 kotlin 和 kapt 一起使用,但是它总是失败并出现文件未找到异常。
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':cap-crd:kaptKotlin'.
...
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: com.sun.tools.javac.processing.AnnotationProcessingError: java.lang.RuntimeException: java.io.FileNotFoundException: resource-operation.vm
...
Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: resource-operation.vm
at io.sundr.transform.internal.VelocityTransformationProcessor.process(VelocityTransformationProcessor.java:128)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt)
at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:147)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:972)
... 47 more
Caused by: java.io.FileNotFoundException: resource-operation.vm
at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.getResource(JavacFiler.java:586)
at io.sundr.transform.internal.VelocityTransformationProcessor.readTemplate(VelocityTransformationProcessor.java:223)
at io.sundr.transform.internal.VelocityTransformationProcessor.process(VelocityTransformationProcessor.java:124)
... 50 more
到目前为止,我没有找到与 kotlin/kapt 的 options.sourcepath 的等效配置,以便注释处理器能够访问文件。
谢谢!
解决方案
我让它与以下 kapt 配置一起使用
kapt {
javacOptions {
option("--source-path", file("src/main/resources").absolutePath)
}
}
推荐阅读
- ruby-on-rails - 邀请链接与设计
- sql-server - 创建使用来自 2 个表的数据的更新触发器
- swift - 如何在列表视图中创建 SwipeActionsConfigurationForRowAt - SwiftUI (iOS 13)?
- julia - 如何在 Julia 中使用 ImplicitEuler 求解器?
- sql - 优化大表连接查询
- java - 如何将字符串转换为整数类型?
- github-actions - 在 GitHub Action 上设置操作输入时是否可以创建 if 语句?
- json - Play JSON Reads:读取值,可以多种类型呈现
- asp.net-mvc - MVC-选择带有数据库值的复选框列表
- css - 是否可以设置表格水平滚动条的样式?