Publish 'kotlinx-serialization-compiler-plugin' separately
- Also publish 'kotlinx-serialization-compiler-plugin-embeddable' to be used with 'kotlin-compiler-embeddable'. - Now Serialization Maven and Gradle plugins do not embed plugin into itself, but declare on published one normal dependency. - 'kotlin-serialization-unshaded' publication is deprecated. ^KT-52811 In Progress
This commit is contained in:
committed by
Space Team
parent
78c94b65b9
commit
a58d6fd13a
@@ -15,7 +15,7 @@ dependencies {
|
|||||||
testApi(commonDependency("junit"))
|
testApi(commonDependency("junit"))
|
||||||
testApi(projectTests(":kotlin-scripting-compiler")) { isTransitive = false }
|
testApi(projectTests(":kotlin-scripting-compiler")) { isTransitive = false }
|
||||||
testImplementation(project(":kotlin-compiler-embeddable"))
|
testImplementation(project(":kotlin-compiler-embeddable"))
|
||||||
kotlinxSerializationGradlePluginClasspath(project(":kotlin-serialization")) { isTransitive = false }
|
kotlinxSerializationGradlePluginClasspath(project(":kotlinx-serialization-compiler-plugin.embeddable")) { isTransitive = false }
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@@ -24,7 +24,7 @@ sourceSets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
projectTest(parallel = true) {
|
projectTest(parallel = true) {
|
||||||
dependsOn(":dist", ":kotlin-serialization:jar")
|
dependsOn(":dist", ":kotlinx-serialization-compiler-plugin.embeddable:embeddable")
|
||||||
val localKotlinxSerializationPluginClasspath: FileCollection = kotlinxSerializationGradlePluginClasspath
|
val localKotlinxSerializationPluginClasspath: FileCollection = kotlinxSerializationGradlePluginClasspath
|
||||||
doFirst {
|
doFirst {
|
||||||
systemProperty("kotlin.script.test.kotlinx.serialization.plugin.classpath", localKotlinxSerializationPluginClasspath.asPath)
|
systemProperty("kotlin.script.test.kotlinx.serialization.plugin.classpath", localKotlinxSerializationPluginClasspath.asPath)
|
||||||
|
|||||||
-2
@@ -246,8 +246,6 @@ class MainKtsTest {
|
|||||||
@Test
|
@Test
|
||||||
fun testHelloSerialization() {
|
fun testHelloSerialization() {
|
||||||
// the embeddable plugin is needed for this test, because embeddable compiler is used.
|
// 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 serializationPluginClasspath = System.getProperty("kotlin.script.test.kotlinx.serialization.plugin.classpath")!!
|
||||||
val out = captureOut {
|
val out = captureOut {
|
||||||
val res = evalFileWithConfigurations(
|
val res = evalFileWithConfigurations(
|
||||||
|
|||||||
@@ -5,12 +5,6 @@
|
|||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<properties>
|
<properties>
|
||||||
<serialization.common.src>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.common/src</serialization.common.src>
|
|
||||||
<serialization.k1.src>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k1/src</serialization.k1.src>
|
|
||||||
<serialization.k2.src>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k2/src</serialization.k2.src>
|
|
||||||
<serialization.backend.src>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.backend/src</serialization.backend.src>
|
|
||||||
<serialization.cli.src>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/src</serialization.cli.src>
|
|
||||||
<serialization.resources>${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/resources</serialization.resources>
|
|
||||||
<serialization.maven.plugin.src>${basedir}/src/main/kotlin</serialization.maven.plugin.src>
|
<serialization.maven.plugin.src>${basedir}/src/main/kotlin</serialization.maven.plugin.src>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
@@ -45,13 +39,15 @@
|
|||||||
<version>${maven.version}</version>
|
<version>${maven.version}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
|
<artifactId>kotlinx-serialization-compiler-plugin</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
|
||||||
<resource><directory>${serialization.resources}</directory></resource>
|
|
||||||
</resources>
|
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
@@ -62,11 +58,6 @@
|
|||||||
<goals><goal>add-source</goal></goals>
|
<goals><goal>add-source</goal></goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<sources>
|
<sources>
|
||||||
<source>${serialization.common.src}</source>
|
|
||||||
<source>${serialization.k1.src}</source>
|
|
||||||
<source>${serialization.k2.src}</source>
|
|
||||||
<source>${serialization.backend.src}</source>
|
|
||||||
<source>${serialization.cli.src}</source>
|
|
||||||
<source>${serialization.maven.plugin.src}</source>
|
<source>${serialization.maven.plugin.src}</source>
|
||||||
</sources>
|
</sources>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -88,30 +79,10 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<jvmTarget>1.8</jvmTarget>
|
<jvmTarget>1.8</jvmTarget>
|
||||||
<args>
|
<args>
|
||||||
<arg>-Xjvm-default=enable</arg>
|
<arg>-Xjvm-default=all</arg>
|
||||||
<arg>-opt-in=org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI</arg>
|
|
||||||
<arg>-opt-in=org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi</arg>
|
|
||||||
<arg>-opt-in=org.jetbrains.kotlin.utils.addToStdlib.UnsafeCastFunction</arg>
|
|
||||||
<arg>-Xcontext-receivers</arg>
|
|
||||||
</args>
|
</args>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.5.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>default-compile</id>
|
|
||||||
<phase>none</phase>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<id>java-compile</id>
|
|
||||||
<phase>compile</phase>
|
|
||||||
<goals> <goal>compile</goal> </goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.codehaus.plexus</groupId>
|
<groupId>org.codehaus.plexus</groupId>
|
||||||
<artifactId>plexus-component-metadata</artifactId>
|
<artifactId>plexus-component-metadata</artifactId>
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ dependencies {
|
|||||||
|
|
||||||
commonCompileOnly(project(":kotlin-gradle-plugin"))
|
commonCompileOnly(project(":kotlin-gradle-plugin"))
|
||||||
commonCompileOnly(project(":kotlin-compiler-embeddable"))
|
commonCompileOnly(project(":kotlin-compiler-embeddable"))
|
||||||
|
|
||||||
embedded(project(":kotlinx-serialization-compiler-plugin")) { isTransitive = false }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gradlePlugin {
|
gradlePlugin {
|
||||||
|
|||||||
+2
-2
@@ -24,8 +24,8 @@ class SerializationGradleSubplugin :
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlin"
|
const val SERIALIZATION_GROUP_NAME = "org.jetbrains.kotlin"
|
||||||
const val SERIALIZATION_ARTIFACT_NAME = "kotlin-serialization"
|
const val SERIALIZATION_ARTIFACT_NAME = "kotlinx-serialization-compiler-plugin-embeddable"
|
||||||
const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlin-serialization-unshaded"
|
const val SERIALIZATION_ARTIFACT_UNSHADED_NAME = "kotlinx-serialization-compiler-plugin"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true
|
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ sourceSets {
|
|||||||
|
|
||||||
optInToExperimentalCompilerApi()
|
optInToExperimentalCompilerApi()
|
||||||
|
|
||||||
|
publish()
|
||||||
|
|
||||||
runtimeJar()
|
runtimeJar()
|
||||||
sourcesJar()
|
sourcesJar()
|
||||||
javadocJar()
|
javadocJar()
|
||||||
|
|||||||
@@ -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<Jar>("sourcesJar")
|
||||||
|
)
|
||||||
|
javadocJarWithJavadocFromEmbedded(
|
||||||
|
project(":kotlinx-serialization-compiler-plugin").tasks.named<Jar>("javadocJar")
|
||||||
|
)
|
||||||
@@ -323,6 +323,7 @@ include ":kotlin-lombok-compiler-plugin",
|
|||||||
":kotlin-lombok"
|
":kotlin-lombok"
|
||||||
|
|
||||||
include ":kotlinx-serialization-compiler-plugin",
|
include ":kotlinx-serialization-compiler-plugin",
|
||||||
|
":kotlinx-serialization-compiler-plugin.embeddable",
|
||||||
":kotlinx-serialization-compiler-plugin.common",
|
":kotlinx-serialization-compiler-plugin.common",
|
||||||
":kotlinx-serialization-compiler-plugin.k1",
|
":kotlinx-serialization-compiler-plugin.k1",
|
||||||
":kotlinx-serialization-compiler-plugin.k2",
|
":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(':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').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.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.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
|
project(':kotlinx-serialization-compiler-plugin.k1').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.k1" as File
|
||||||
|
|||||||
Reference in New Issue
Block a user