Kapt: Register kapt classes output directory as Java classes directory (KT-19211)
This is relevant to pure (non-Android) Java projects and Gradle 4.0+.
This commit is contained in:
+6
-1
@@ -110,6 +110,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
val javaCompile: AbstractCompile,
|
||||
val kaptVariantData: KaptVariantData<*>?,
|
||||
val sourceSetName: String,
|
||||
val javaSourceSet: SourceSet?,
|
||||
val kaptExtension: KaptExtension,
|
||||
val kaptClasspath: MutableList<File>) {
|
||||
val sourcesOutputDir = getKaptGeneratedDir(project, sourceSetName)
|
||||
@@ -168,7 +169,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
val kaptExtension = project.extensions.getByType(KaptExtension::class.java)
|
||||
|
||||
val context = Kapt3SubpluginContext(project, kotlinCompile, javaCompile,
|
||||
kaptVariantData, sourceSetName, kaptExtension, kaptClasspath)
|
||||
kaptVariantData, sourceSetName, javaSourceSet, kaptExtension, kaptClasspath)
|
||||
|
||||
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
|
||||
val kaptTask = context.createKaptKotlinTask()
|
||||
@@ -283,6 +284,10 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
kaptTask.destinationDir = sourcesOutputDir
|
||||
kaptTask.classesDir = classesOutputDir
|
||||
|
||||
javaSourceSet?.output?.apply {
|
||||
tryAddClassesDir { project.files(classesOutputDir).builtBy(kaptTask) }
|
||||
}
|
||||
|
||||
kotlinCompile.source(sourcesOutputDir, kotlinSourcesOutputDir)
|
||||
|
||||
if (kaptVariantData != null) {
|
||||
|
||||
+1
-1
@@ -193,7 +193,7 @@ internal class Kotlin2JvmSourceSetProcessor(
|
||||
}
|
||||
}
|
||||
|
||||
private fun SourceSetOutput.tryAddClassesDir(
|
||||
internal fun SourceSetOutput.tryAddClassesDir(
|
||||
classesDirProvider: () -> FileCollection
|
||||
): Boolean {
|
||||
val getClassesDirs = ReflectionUtil.findMethod(
|
||||
|
||||
Reference in New Issue
Block a user