【发布时间】:2020-07-07 10:43:11
【问题描述】:
我想使用一个注解处理器,在处理过程中需要从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
到目前为止,我还没有找到 options.sourcepath 与 kotlin/kapt 的等效配置,以便注释处理器能够访问文件。
谢谢!
【问题讨论】:
标签: kotlin gradle gradle-kotlin-dsl kapt