首页 > 解决方案 > 元数据依赖中的生成类(使用 kapt)

问题描述

我们有一个多平台项目,使用 kapt 为 commonMain 中的注释类生成源。源由名为“生成”的自定义 SourceSet 添加到 jvm 和 js 目标。这很好用。

我们现在必须从另一个多平台项目的 commonMain 依赖它。不幸的是,生成的 SourceSet 中的类仅添加到 jvm 和 js jar 中,而不添加到用于解决 commonMain 依赖项的元数据中(因为我们只能依赖从 jvmMain 和 jsMain 而不是从 commonMain 生成的(循环依赖) )。

我们如何将生成的类添加到元数据工件中?

标签: kotlingradlekapt

解决方案


为了实现这一点,我们在 commonMain SourceSet 中添加了以下几行:

tasks.getByName("compileKotlinMetadata").dependsOn("kaptKotlinJvm")
kotlin.srcDir("$buildDir/generated/source/kaptKotlin/main")

推荐阅读