根据Gradle Kotlin插件page。
Kotlin源可以与同一文件夹或不同文件夹中的Java源混合使用。默认约定是使用不同的文件夹。如果不使用默认约定,则应更新相应的sourceSets属性。
我想在src / main / kotlin中添加一些Java文件,并让compileJava任务编译它们。我试图拿出以下块来实现它,但没有骰子。
java {
val kotlinSrcDir: File = File(projectDir, "src/main/kotlin")
sourceSets["main"].java.srcDirs.add(kotlinSrcDir)
val javasrcdirs: Set<File> = sourceSets["main"].java.srcDirs
println(javasrcdirs)
}
是什么给出的?
答案 0 :(得分:4)
java {
val kotlinSrcDir = "src/main/kotlin"
val mainJavaSourceSet: SourceDirectorySet = sourceSets.getByName("main").java
mainJavaSourceSet.srcDir(kotlinSrcDir)
println(mainJavaSourceSet.srcDirs)
}
当您在srcDirs
中致电build.gradle.kts
时,实际调用的方法是SourceDirectorySet.getSrcDirs()
。 DefaultSourceDirectorySet.getSrcDirs()
中此方法的实现会返回集合的防御副本,这就是修改它无效的原因。
所以要实际添加新的源目录到集合srcDir(Object)
或srcDirs(Object...)
。