Changes to configuration of Kotlin source set
* Include the Java source directory set as-is, without iterating over its srcDirs * Avoid Java sources duplication with newer Gradle versions. Issue #KT-16764 Fixed Issue #KT-17564 Fixed
This commit is contained in:
+58
-1
@@ -29,6 +29,7 @@ import java.io.File
|
||||
import java.util.zip.ZipFile
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotEquals
|
||||
import kotlin.test.assertNotNull
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class KotlinGradleIT: BaseGradleIT() {
|
||||
@@ -659,4 +660,60 @@ class KotlinGradleIT: BaseGradleIT() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSrcDirTaskDependency() {
|
||||
Project("simpleProject", "4.1").apply {
|
||||
setupWorkingDir()
|
||||
File(projectDir, "build.gradle").appendText("""${'\n'}
|
||||
task generateSources {
|
||||
outputs.dir('generated')
|
||||
doLast {
|
||||
def file = new File('generated/test/TestClass.java')
|
||||
file.parentFile.mkdirs()
|
||||
file.text = ""${'"'}
|
||||
package test;
|
||||
|
||||
public class TestClass { }
|
||||
""${'"'}
|
||||
}
|
||||
}
|
||||
sourceSets.main.java.srcDir(tasks.generateSources)
|
||||
""".trimIndent())
|
||||
File(projectDir, "src/main/kotlin/helloWorld.kt").appendText("""${'\n'}
|
||||
fun usageOfGeneratedSource() = test.TestClass()
|
||||
""".trimIndent())
|
||||
|
||||
build("build") {
|
||||
assertSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSourceJar() {
|
||||
Project("simpleProject", "4.1").apply {
|
||||
setupWorkingDir()
|
||||
val additionalSrcDir = "src/additional/kotlin/"
|
||||
|
||||
File(projectDir, additionalSrcDir).mkdirs()
|
||||
File(projectDir, "$additionalSrcDir/additionalSource.kt").writeText("fun hello() = 123")
|
||||
|
||||
File(projectDir, "build.gradle").appendText("""${'\n'}
|
||||
task sourcesJar(type: Jar) {
|
||||
from sourceSets.main.allSource
|
||||
classifier 'source'
|
||||
duplicatesStrategy = 'fail' // fail in case of Java source duplication, see KT-17564
|
||||
}
|
||||
|
||||
sourceSets.main.kotlin.srcDir('$additionalSrcDir') // test that additional srcDir is included
|
||||
""".trimIndent())
|
||||
|
||||
build("sourcesJar") {
|
||||
assertSuccessful()
|
||||
val sourcesJar = ZipFile(File(projectDir, "build/libs/simpleProject-source.jar"))
|
||||
assertNotNull(sourcesJar.getEntry("additionalSource.kt"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user