使用Java,我们可以像这样进行排除:
java {
srcDir 'src'
exclude '**/myTests/**'
}
我希望用 Kotlin 制作同样的东西。
我试图在官方文档中找到有关配置 Kotlin 的文档,但没有任何进展。
我的期望和尝试过的(当然都无果):
kotlin {
srcDir 'src'
exclude '**/myTests/*.kt'
}
使用Java,我们可以像这样进行排除:
java {
srcDir 'src'
exclude '**/myTests/**'
}
我希望用 Kotlin 制作同样的东西。
我试图在官方文档中找到有关配置 Kotlin 的文档,但没有任何进展。
我的期望和尝试过的(当然都无果):
kotlin {
srcDir 'src'
exclude '**/myTests/*.kt'
}
java {
srcDir 'src'
exclude '**/myTests/*.kt'
}
没有任何与Kotlin相关的配置。
为什么这么说:我把所有的Kotlin文件放在kotlin目录下,Java文件放在java目录下。但在配置时,我添加了:
sourceSets {
main.java.srcDirs += "src/main/kotlin"
}
src/main/java
中添加 src/main/kotlin
的源文件。
这应该可以解决您的问题。
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile.class).configureEach {
it.exclude('**/TestExcludeKotlinClass.kt')
}
tasks.withType<KotlinCompile> {
exclude("**/packageToExlude/**")}
我发现了一种方法,可以使这个工作特别适用于Android单元测试(但我假设它是可适应的),使用其他解决方案的组合:
def filesToExclude = [
'**/*TestOne*.kt',
'**/*TestTwo*.kt',
...
]
tasks.withType(org.gradle.api.tasks.SourceTask.class).configureEach {
it.exclude(filesToExclude)
}
android.sourceSets.test.kotlin.exclude(filesToExclude)