diff --git a/libraries/tools/kotlin-main-kts-test/build.gradle.kts b/libraries/tools/kotlin-main-kts-test/build.gradle.kts
index 23834f608d2..710b9dedde5 100644
--- a/libraries/tools/kotlin-main-kts-test/build.gradle.kts
+++ b/libraries/tools/kotlin-main-kts-test/build.gradle.kts
@@ -15,7 +15,7 @@ dependencies {
testApi(commonDependency("junit"))
testApi(projectTests(":kotlin-scripting-compiler")) { isTransitive = false }
testImplementation(project(":kotlin-compiler-embeddable"))
- kotlinxSerializationGradlePluginClasspath(project(":kotlin-serialization")) { isTransitive = false }
+ kotlinxSerializationGradlePluginClasspath(project(":kotlinx-serialization-compiler-plugin.embeddable")) { isTransitive = false }
}
sourceSets {
@@ -24,7 +24,7 @@ sourceSets {
}
projectTest(parallel = true) {
- dependsOn(":dist", ":kotlin-serialization:jar")
+ dependsOn(":dist", ":kotlinx-serialization-compiler-plugin.embeddable:embeddable")
val localKotlinxSerializationPluginClasspath: FileCollection = kotlinxSerializationGradlePluginClasspath
doFirst {
systemProperty("kotlin.script.test.kotlinx.serialization.plugin.classpath", localKotlinxSerializationPluginClasspath.asPath)
diff --git a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt
index bb222518a2e..76a3bf3b70e 100644
--- a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt
+++ b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt
@@ -246,8 +246,6 @@ class MainKtsTest {
@Test
fun testHelloSerialization() {
// the embeddable plugin is needed for this test, because embeddable compiler is used.
- // furtunately appropriate gradle plugin can serve as an embeddable compiler plugin now
- // so, the path to it is prepared in the build file
val serializationPluginClasspath = System.getProperty("kotlin.script.test.kotlinx.serialization.plugin.classpath")!!
val out = captureOut {
val res = evalFileWithConfigurations(
diff --git a/libraries/tools/kotlin-maven-serialization/pom.xml b/libraries/tools/kotlin-maven-serialization/pom.xml
index 792d4820f82..5223e7e0282 100755
--- a/libraries/tools/kotlin-maven-serialization/pom.xml
+++ b/libraries/tools/kotlin-maven-serialization/pom.xml
@@ -5,12 +5,6 @@
4.0.0
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.common/src
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k1/src
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k2/src
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.backend/src
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/src
- ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/resources
${basedir}/src/main/kotlin
@@ -45,13 +39,15 @@
${maven.version}
provided
+
+ org.jetbrains.kotlin
+ kotlinx-serialization-compiler-plugin
+ ${project.version}
+ provided
+
-
- ${serialization.resources}
-
-
org.codehaus.mojo
@@ -62,11 +58,6 @@
add-source
- ${serialization.common.src}
- ${serialization.k1.src}
- ${serialization.k2.src}
- ${serialization.backend.src}
- ${serialization.cli.src}
${serialization.maven.plugin.src}
@@ -88,30 +79,10 @@
1.8
- -Xjvm-default=enable
- -opt-in=org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
- -opt-in=org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
- -opt-in=org.jetbrains.kotlin.utils.addToStdlib.UnsafeCastFunction
- -Xcontext-receivers
+ -Xjvm-default=all
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.5.1
-
-
- default-compile
- none
-
-
- java-compile
- compile
- compile
-
-
-
org.codehaus.plexus
plexus-component-metadata
diff --git a/libraries/tools/kotlin-serialization/build.gradle.kts b/libraries/tools/kotlin-serialization/build.gradle.kts
index 7269a524859..25cefdad232 100644
--- a/libraries/tools/kotlin-serialization/build.gradle.kts
+++ b/libraries/tools/kotlin-serialization/build.gradle.kts
@@ -14,8 +14,6 @@ dependencies {
commonCompileOnly(project(":kotlin-gradle-plugin"))
commonCompileOnly(project(":kotlin-compiler-embeddable"))
-
- embedded(project(":kotlinx-serialization-compiler-plugin")) { isTransitive = false }
}
gradlePlugin {
diff --git a/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt b/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt
index fd1288c5e22..575b49fa0b3 100644
--- a/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt
+++ b/libraries/tools/kotlin-serialization/src/common/kotlin/org/jetbrains/kotlinx/serialization/gradle/SerializationSubplugin.kt
@@ -24,8 +24,8 @@ class SerializationGradleSubplugin :
companion object {
const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlin"
- const val SERIALIZATION_ARTIFACT_NAME = "kotlin-serialization"
- const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlin-serialization-unshaded"
+ const val SERIALIZATION_ARTIFACT_NAME = "kotlinx-serialization-compiler-plugin-embeddable"
+ const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlinx-serialization-compiler-plugin"
}
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true
diff --git a/plugins/kotlinx-serialization/build.gradle.kts b/plugins/kotlinx-serialization/build.gradle.kts
index 83c7756c828..1843e74589c 100644
--- a/plugins/kotlinx-serialization/build.gradle.kts
+++ b/plugins/kotlinx-serialization/build.gradle.kts
@@ -72,6 +72,8 @@ sourceSets {
optInToExperimentalCompilerApi()
+publish()
+
runtimeJar()
sourcesJar()
javadocJar()
diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts
new file mode 100644
index 00000000000..300a251ceb7
--- /dev/null
+++ b/plugins/kotlinx-serialization/kotlinx-serialization.embeddable/build.gradle.kts
@@ -0,0 +1,19 @@
+plugins {
+ id("org.jetbrains.kotlin.jvm")
+}
+
+dependencies {
+ embedded(project(":kotlinx-serialization-compiler-plugin")) { isTransitive = false }
+}
+
+publish {
+ artifactId = artifactId.replace(".", "-")
+}
+
+runtimeJar(rewriteDefaultJarDepsToShadedCompiler())
+sourcesJarWithSourcesFromEmbedded(
+ project(":kotlinx-serialization-compiler-plugin").tasks.named("sourcesJar")
+)
+javadocJarWithJavadocFromEmbedded(
+ project(":kotlinx-serialization-compiler-plugin").tasks.named("javadocJar")
+)
diff --git a/settings.gradle b/settings.gradle
index bf5ea4d12f2..e5150facae8 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -323,6 +323,7 @@ include ":kotlin-lombok-compiler-plugin",
":kotlin-lombok"
include ":kotlinx-serialization-compiler-plugin",
+ ":kotlinx-serialization-compiler-plugin.embeddable",
":kotlinx-serialization-compiler-plugin.common",
":kotlinx-serialization-compiler-plugin.k1",
":kotlinx-serialization-compiler-plugin.k2",
@@ -783,6 +784,7 @@ project(':js:js.tests').projectDir = "$rootDir/js/js.tests" as File
project(':js:js.engines').projectDir = "$rootDir/js/js.engines" as File
project(':kotlinx-serialization-compiler-plugin').projectDir = "$rootDir/plugins/kotlinx-serialization" as File
+project(':kotlinx-serialization-compiler-plugin.embeddable').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.embeddable" as File
project(':kotlinx-serialization-compiler-plugin.cli').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.cli" as File
project(':kotlinx-serialization-compiler-plugin.backend').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.backend" as File
project(':kotlinx-serialization-compiler-plugin.k1').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.k1" as File