kotlin - 元数据依赖中的生成类(使用 kapt)
问题描述
我们有一个多平台项目,使用 kapt 为 commonMain 中的注释类生成源。源由名为“生成”的自定义 SourceSet 添加到 jvm 和 js 目标。这很好用。
我们现在必须从另一个多平台项目的 commonMain 依赖它。不幸的是,生成的 SourceSet 中的类仅添加到 jvm 和 js jar 中,而不添加到用于解决 commonMain 依赖项的元数据中(因为我们只能依赖从 jvmMain 和 jsMain 而不是从 commonMain 生成的(循环依赖) )。
我们如何将生成的类添加到元数据工件中?
解决方案
为了实现这一点,我们在 commonMain SourceSet 中添加了以下几行:
tasks.getByName("compileKotlinMetadata").dependsOn("kaptKotlinJvm")
kotlin.srcDir("$buildDir/generated/source/kaptKotlin/main")