Ale*_*lex 6 annotations gradle kotlin
我有一个项目,它使用kapt进行注释处理和代码生成(基于注释).它适用于主要来源,但不适用于测试来源.
一些来源(例如如何在androidTest范围内使用kapt)建议运行gradle kaptTest,但这也不起作用.它将任务报告为"最新",即使在干净之后也是如此.也许这个建议对于android来说是独一无二的.
我从https://github.com/JetBrains/kotlin-examples/tree/master/gradle/kotlin-code-generation下载了示例项目,在测试源中添加了注释用法,我在那里得到了相同的行为.它适用于主要来源,并不适用于测试源.
输出中唯一奇怪的事情是:
> Task :example:compileKotlin
Using kotlin incremental compilation
w: [kapt] Sources output directory is not specified, skipping annotation processing
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,这不是测试源,而是主要来源和注释处理器应用于那些.
我在注释处理器中添加了一个打印输出.它确实显示为compileKotlin,但不适用于compileTestKotlin.
那么,让kapt在测试源上工作的神奇技巧是什么?
PS:我想有人会要求我的build.gradle.它与我链接的示例中的相同,因此如果您可以使其适用于示例,我可以集成到我的构建文件中.
PPS:我发现的类似问题是Kotlin的gradle kapt插件不适用于自定义源集(JMH),他们建议发布错误报告.也许这是kapt-gradle-plugin中的一个错误?
一些来源(例如如何在 androidTest 范围内使用 kapt)建议运行 gradle kaptTest,但这也不起作用。
你误解了这个建议。它说kaptTest应该代替使用kapt的dependencies块,如所描述这里,不是说你应该不同运行摇篮。OTOH,文档中还特别提到
请注意,kaptAndroidTest 和 kaptTest 扩展了 kapt,因此您只需提供 kapt 依赖项,它就可用于生产源和测试。
所以那里确实似乎有一个错误。
我已在https://youtrack.jetbrains.com/issue/KT-21891 中链接了这个问题。我不想提交单独的错误,因为我不知道哪个 Gradle/Kotlin/Kotlin Gradle 插件/等。你有过。
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |