Adjust publishing
diff --git a/api/build.gradle.kts b/api/build.gradle.kts
index d71c446..97cdaf0 100644
--- a/api/build.gradle.kts
+++ b/api/build.gradle.kts
@@ -2,7 +2,7 @@
 
 description = "Kotlin Symbol Processing API"
 
-val kotlinBaseVersion: String? by project
+val kotlinBaseVersion: String by project
 
 group = "org.jetbrains.kotlin"
 version = kotlinBaseVersion
diff --git a/compiler-plugin/build.gradle.kts b/compiler-plugin/build.gradle.kts
index cd28784..8b35cc6 100644
--- a/compiler-plugin/build.gradle.kts
+++ b/compiler-plugin/build.gradle.kts
@@ -3,9 +3,9 @@
 description = "Kotlin Symbol Processor"
 
 val kotlinProjectPath: String? by project
-val intellijVersion: String? by project
-val kotlinBaseVersion: String? by project
-val junitVersion: String? by project
+val intellijVersion: String by project
+val kotlinBaseVersion: String by project
+val junitVersion: String by project
 
 group = "org.jetbrains.kotlin"
 version = kotlinBaseVersion
@@ -18,7 +18,6 @@
 plugins {
     kotlin("jvm")
     id("org.jetbrains.intellij") version "0.4.22"
-    `maven-publish`
 }
 
 intellij {
@@ -111,15 +110,3 @@
     }
     maven("https://dl.bintray.com/kotlin/kotlin-eap")
 }
-
-publishing {
-    publications {
-        create<MavenPublication>("default") {
-            artifactId = "ksp-kotlin-extension"
-            from(components["java"])
-        }
-        repositories {
-            mavenLocal()
-        }
-    }
-}
diff --git a/compiler-plugin/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor b/compiler-plugin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
similarity index 100%
rename from compiler-plugin/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
rename to compiler-plugin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
diff --git a/compiler-plugin/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar b/compiler-plugin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
similarity index 100%
rename from compiler-plugin/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
rename to compiler-plugin/src/main/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts
index 02708ba..72f8ff0 100644
--- a/gradle-plugin/build.gradle.kts
+++ b/gradle-plugin/build.gradle.kts
@@ -2,8 +2,8 @@
 
 description = "Kotlin Symbol Processor"
 
-val kotlinBaseVersion: String? by project
-val junitVersion: String? by project
+val kotlinBaseVersion: String by project
+val junitVersion: String by project
 
 group = "org.jetbrains.kotlin"
 version = kotlinBaseVersion
@@ -15,7 +15,6 @@
 
 plugins {
     kotlin("jvm")
-    `maven-publish`
 }
 
 dependencies {
@@ -30,16 +29,3 @@
 repositories {
     maven("https://dl.bintray.com/kotlin/kotlin-eap")
 }
-
-publishing {
-    publications {
-        create<MavenPublication>("default") {
-            artifactId = "ksp-gradle-plugin"
-            from(components["java"])
-        }
-        repositories {
-            mavenLocal()
-        }
-    }
-}
-
diff --git a/kotlin-ksp/build.gradle.kts b/kotlin-ksp/build.gradle.kts
new file mode 100644
index 0000000..0f46cf0
--- /dev/null
+++ b/kotlin-ksp/build.gradle.kts
@@ -0,0 +1,46 @@
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+description = "Ksp - Symbol processing for Kotlin"
+
+val kotlinBaseVersion: String by project
+
+group = "org.jetbrains.kotlin"
+version = kotlinBaseVersion
+
+plugins {
+    kotlin("jvm")
+    id("com.github.johnrengelman.shadow") version "6.0.0"
+    `maven-publish`
+}
+
+val packedJars by configurations.creating
+
+dependencies {
+    packedJars(project(":gradle-plugin")) { isTransitive = false }
+    packedJars(project(":compiler-plugin")) { isTransitive = false }
+    packedJars(project(":api")) { isTransitive = false }
+}
+
+tasks.withType<ShadowJar>() {
+    classifier = ""
+    from(packedJars)
+    relocate("com.intellij", "org.jetbrains.kotlin.com.intellij")
+}
+
+tasks {
+    build {
+        dependsOn(shadowJar)
+    }
+}
+
+publishing {
+    publications {
+        val publication = create<MavenPublication>("shadow") {
+            artifactId = "kotlin-ksp"
+        }
+        project.shadow.component(publication)
+        repositories {
+            mavenLocal()
+        }
+    }
+}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index c24a035..98418d2 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -8,13 +8,14 @@
 include("api")
 include("gradle-plugin")
 include("compiler-plugin")
+include("kotlin-ksp")
 
 val kotlinProjectPath: String? by settings
 if (kotlinProjectPath != null) {
     includeBuild(kotlinProjectPath!!) {
         dependencySubstitution {
             substitute(module("org.jetbrains.kotlin:kotlin-compiler")).with(project(":include:kotlin-compiler"))
-            substitute(module("org.jetbrains.kotlin:kotlin-compiler-tests")).with(project(":include:kotlin-compiler-tests"))
+//            substitute(module("org.jetbrains.kotlin:kotlin-compiler-tests")).with(project(":include:kotlin-compiler-tests"))
         }
     }
 }