Use file trees in InspectClassesForMultiModuleIC

#KT-26208
This commit is contained in:
Alexey Tsvetkov
2018-08-20 05:27:50 +03:00
parent 41a47ea50f
commit 73f7c2ef3c
@@ -11,6 +11,7 @@ import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.*
import org.gradle.jvm.tasks.Jar
import org.jetbrains.kotlin.gradle.utils.isClassFile
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
import java.io.File
internal open class InspectClassesForMultiModuleIC : DefaultTask() {
@@ -28,9 +29,18 @@ internal open class InspectClassesForMultiModuleIC : DefaultTask() {
@Suppress("MemberVisibilityCanBePrivate")
@get:InputFiles
internal val classFiles: FileCollection
get() = project.convention.findPlugin(JavaPluginConvention::class.java)?.let {
it.sourceSets.findByName(sourceSetName)?.output?.asFileTree?.filter { it.isClassFile() }
} ?: project.files()
get() {
val convention = project.convention.findPlugin(JavaPluginConvention::class.java)
val sourceSet = convention?.sourceSets?.findByName(sourceSetName) ?: return project.files()
return if (isGradleVersionAtLeast(4, 0)) {
val fileTrees = sourceSet.output.classesDirs.map { project.fileTree(it).include("**/*.class") }
project.files(fileTrees)
} else {
sourceSet.output.asFileTree.filter { it.isClassFile() }
}
}
@get:Input
internal val archivePath: String