kapt:如何处理测试资源?

我有一个使用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 

但是正如你所看到的,这不是测试来源,而是主要来源,而注释处理器就是应用在那些上。

我在注释处理器中添加了一个打印输出。 它显示为compileKotlin,但不是compileTestKotlin。

那么,使kapt在测试源上工作的魔术是什么?

PS:我想有人会问我的build.gradle。 这与我链接的例子是一样的,所以如果你能使它适用于这个例子,我可以集成到我的构建文件中。

PPS:我发现只有类似的问题是Kotlin的kapt插件for gradle不能用于自定义源集(JMH) ,他们建议发布一个bug报告。 所以也许这是kapt-gradle-plugin中的一个bug?