https://kotlinlang.org logo
Title
k

kasper.kondzielski

06/07/2017, 10:51 AM
@Czar I had problems with
java
being not recognised, finally I manage to do this in following way:
configure<JavaPluginConvention> {
    sourceSets[SourceSet.MAIN_SOURCE_SET_NAME].java {
        srcDir("src/main/kotlin")
    }
}
c

Czar

06/07/2017, 10:54 AM
kasper.kondzielski:
plugins {
    java // so we can benefit from the `java` accessor below
}
Take a look here: https://github.com/gradle/gradle-script-kotlin/blob/2d9070f9ba245a5b1c26db7dbae252e7981e7408/provider/build.gradle.kts
k

kasper.kondzielski

06/07/2017, 10:59 AM
Thx 🙂
I wrote it too early. I still have a problem 😞 Add
java
plugin does not help. Do I need to create some custom extension point for it?
s

suresh

06/08/2017, 7:25 PM
fun Project.sourceSets(block: SourceSetContainer.() -> Unit) = the<JavaPluginConvention>().sourceSets.apply(block)
val SourceSetContainer.main: SourceSet get() = this["main"]
val SourceSetContainer.test: SourceSet get() = this["test"]
fun SourceSetContainer.main(block: SourceSet.() -> Unit) = main.apply(block)
fun SourceSetContainer.test(block: SourceSet.() -> Unit) = test.apply(block)
val SourceSet.kotlin: SourceDirectorySet get() = (this as HasConvention).convention.getPlugin<KotlinSourceSet>().kotlin

        sourceSets {
            main {
                println("${name.capitalize()} => Java : ${java.srcDirs}, Kotlin: ${kotlin.srcDirs}, Resource: ${resources.srcDirs}")
            }
            test {
                println("${name.capitalize()} => Java : ${java.srcDirs}, Kotlin: ${kotlin.srcDirs}, Resource: ${resources.srcDirs}")
            }
        }
Might help you..working fine for me.