Hey guys, is there a getting started guide when us...
# serialization
g
Hey guys, is there a getting started guide when using kotlinc at the command line (IE without gradle)?
this is very frustraiting, im on kotlin 1.6 (because lazyness), using
-Xplugin=path/to/kotlin-serialization-1.6.21.jar
and
kotlin 1.6
fails with
Caused by: java.lang.AbstractMethodError: Receiver class org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar does not define or inherit an implementation of the resolved method 'abstract void registerProjectComponents(com.intellij.mock.MockProject, org.jetbrains.kotlin.config.CompilerConfiguration)' of interface org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar.
but opening that jar, that file exists and it does implement that method. Sadness.
s
I suspect this is because of shading of compiler artifacts for gradle. Try `kotlin-serialization-unshaded`(https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-serialization-unshaded) artifact.
🎉 1
g
I'll give it a shot. The problem that shading is trying to solve is that... When used under Gradle the versions of compiler tools floating around in the classes is nebulous, so it's better to just use a fat jar with a shaded copy of the arg types? Is it
the unshaded jar did the trick. Just to be clear: • unshaded jar is only given to -XPlugin • regular (shaded) jar is given to runtime classpath • also the "core json" jar is given to runtime classpath. Correct?
s
You don't need to provide plugin jar to application runtime classpath. Core(+Json if you use it) is enough