Gradle 如何使Kotlin`internal`对象可供测试访问?

Gradle 如何使Kotlin`internal`对象可供测试访问?,gradle,kotlin,source-sets,Gradle,Kotlin,Source Sets,我的项目使用多个Gradle源代码集作为其生产代码库,而不仅仅是main: 域 dal rest 测试 dbUnitTest 这对于限制依赖关系和强制分离关注点非常有用 然而,它有一个缺点:我们不能从测试类中访问具有的类或方法。原因是Kotlin编译器将每个源代码集放在自己的“模块”中: 我希望所有源集都使用相同的模块名“联系人管理”,默认情况下主源集使用相同的模块名 我试图用编译器选项覆盖该名称: 原因是,-模块名“contact-management\u domain”之前也是由调用Ko

我的项目使用多个Gradle源代码集作为其生产代码库,而不仅仅是
main

  • dal
  • rest
  • 测试
  • dbUnitTest
这对于限制依赖关系和强制分离关注点非常有用

然而,它有一个缺点:我们不能从测试类中访问具有的类或方法。原因是Kotlin编译器将每个源代码集放在自己的“模块”中:

我希望所有源集都使用相同的模块名“联系人管理”,默认情况下主源集使用相同的模块名

我试图用编译器选项覆盖该名称:

原因是,
-模块名“contact-management\u domain”
之前也是由调用Kotlin编译器的Gradle代码设置的,但显然这个选项只被接受一次

在Gradle构建中,如何控制Kotlin编译器考虑的内容?

将要分割
测试
源集的A到目前为止没有令人满意的答案

$ find . -name '*.kotlin_module'
./classes/kotlin/domain/META-INF/contact-management_domain.kotlin_module
./classes/kotlin/dal/META-INF/contact-management_dal.kotlin_module
./classes/kotlin/rest/META-INF/contact-management_dal.kotlin_module
./classes/kotlin/test/META-INF/contact-management.kotlin_module
./classes/kotlin/dbUnitTest/META-INF/contact-management_dbUnitTest.kotlin_module
tasks.withType<KotlinCompile> {
    kotlinOptions {
        // place all source sets in the same kotlin module, making objects with 'internal' visibility available to every source sets of this project
        freeCompilerArgs += listOf("-module-name \"contact-management\")
    }
}
> Task :contact-management:compileDomainKotlin FAILED
e: Invalid argument: -module-name "contact-management"