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(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)
|
||||
|
||||
-2
@@ -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(
|
||||
|
||||
@@ -5,12 +5,6 @@
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<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>
|
||||
</properties>
|
||||
|
||||
@@ -45,13 +39,15 @@
|
||||
<version>${maven.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlinx-serialization-compiler-plugin</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource><directory>${serialization.resources}</directory></resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
@@ -62,11 +58,6 @@
|
||||
<goals><goal>add-source</goal></goals>
|
||||
<configuration>
|
||||
<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>
|
||||
</sources>
|
||||
</configuration>
|
||||
@@ -88,30 +79,10 @@
|
||||
<configuration>
|
||||
<jvmTarget>1.8</jvmTarget>
|
||||
<args>
|
||||
<arg>-Xjvm-default=enable</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>
|
||||
<arg>-Xjvm-default=all</arg>
|
||||
</args>
|
||||
</configuration>
|
||||
</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>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-component-metadata</artifactId>
|
||||
|
||||
@@ -14,8 +14,6 @@ dependencies {
|
||||
|
||||
commonCompileOnly(project(":kotlin-gradle-plugin"))
|
||||
commonCompileOnly(project(":kotlin-compiler-embeddable"))
|
||||
|
||||
embedded(project(":kotlinx-serialization-compiler-plugin")) { isTransitive = false }
|
||||
}
|
||||
|
||||
gradlePlugin {
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -72,6 +72,8 @@ sourceSets {
|
||||
|
||||
optInToExperimentalCompilerApi()
|
||||
|
||||
publish()
|
||||
|
||||
runtimeJar()
|
||||
sourcesJar()
|
||||
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"
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user