【发布时间】:2020-03-16 06:27:39
【问题描述】:
我有一个多平台 Kotlin 项目,其中包含多个模块(子项目)。 Kotlin 的Building Multiplatform Projects with Gradle 文档清楚地展示了如何设置模块之间的项目依赖关系:
kotlin {
sourceSets {
commonMain {
dependencies {
// All of the compilations that include source set 'commonMain'
// will get this dependency resolved to a compatible target, if any:
api project(':foo-lib')
}
}
}
}
我现在面临的问题是,虽然本文记录了如何将一个模块(其所有目标平台)的依赖项添加到另一个模块(其对应的目标平台),但它并没有阐明 如何添加一个对另一个模块的测试源的依赖.
我希望这是一个相当常见的用例。例如,我想这样做的原因之一是我的模块 A 的测试源包含存根类。模块 B 依赖于模块 A,包括在模块 A 的测试源中为其提供测试存根的类定义。因此,模块 B 的测试可能希望重用模块的测试源中定义的那些测试存根也就不足为奇了A.
多项目构建中的一个常见建议是将此类测试源移至另一个模块,但这对我来说似乎没有必要。在我看来更干净的解决方案exist for normal multi-project builds,但我不知道如何在多平台多项目 Kotlin 构建中配置等效的解决方案,该构建也依赖于上面代码中演示的 Kotlin Gradle DSL。
【问题讨论】:
-
@user7294900 这似乎是关于如何为 normal 多项目构建执行此操作的文档,但如前所述,我无法弄清楚如何为 多平台多项目构建。
标签: gradle kotlin kotlin-multiplatform gradle-multi-project-build