[KAPT] KT-65006 fix issues when using Kapt+Serialization
This MR fixes two independent issues causing build failures when using Kapt in combination with the Kotlin serialization plugin (and, very likely, with other plugins as well): Kapt applied compiler plugins twice, causing errors similar to the one described in KT-65006 Kapt failed to generate @Metadata annotations for plugin-generated companion objects because the corresponding SLC missed containingFile needed for generation of method and class signatures Merge-request: KT-MR-13970 Merged-by: Pavel Mikhailovskii <Pavel.Mikhailovskii@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
8e4dc1fc31
commit
85c9c57da4
+12
@@ -1331,4 +1331,16 @@ open class Kapt3IT : Kapt3BaseIT() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("KT-65006 Kapt works with the serialization plugin")
|
||||
@GradleTest
|
||||
fun testSerializationPlugin(gradleVersion: GradleVersion) {
|
||||
project("serialization".withPrefix, gradleVersion) {
|
||||
build(":kaptGenerateStubsKotlin") {
|
||||
assertFileInProjectContains("build/tmp/kapt3/stubs/main/foo/Data.java",
|
||||
"public static final class Companion",
|
||||
"public static final class \$serializer implements kotlinx.serialization.internal.GeneratedSerializer<foo.Data>")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-6
@@ -1,5 +1,3 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||
|
||||
plugins {
|
||||
id "java"
|
||||
id "org.jetbrains.kotlin.jvm"
|
||||
@@ -21,7 +19,3 @@ dependencies {
|
||||
implementation "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"
|
||||
baseAnnos "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"
|
||||
}
|
||||
|
||||
tasks.named("compileKotlin", KotlinJvmCompile) {
|
||||
compilerOptions.allWarningsAsErrors = false // compilation with LV=2.0 prints warning about kapt fallback
|
||||
}
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
plugins {
|
||||
id "org.jetbrains.kotlin.jvm"
|
||||
id "org.jetbrains.kotlin.kapt"
|
||||
id "org.jetbrains.kotlin.plugin.serialization"
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2"
|
||||
implementation "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"
|
||||
kapt "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package foo
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class Data(val x: Int)
|
||||
-6
@@ -1,5 +1,3 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||
|
||||
plugins {
|
||||
id "java"
|
||||
id "org.jetbrains.kotlin.jvm"
|
||||
@@ -17,7 +15,3 @@ dependencies {
|
||||
kapt "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
}
|
||||
|
||||
tasks.named("compileKotlin", KotlinJvmCompile) {
|
||||
compilerOptions.allWarningsAsErrors = false // compilation with LV=2.0 prints warning about kapt fallback
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user