aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing-Yuan Huang <laszio@google.com>2024-04-04 10:29:23 -0700
committerJiaxiang Chen <roaringacw@gmail.com>2024-04-04 11:30:39 -0700
commitae2423b446e609b012f6fc5d1fc09702dac66d23 (patch)
treeac6337107a4258867af52d6df5be17cdc19a0e28
parente7fb6d1e229398897fff6292d15abe5fa2c1674e (diff)
downloadksp-ae2423b446e609b012f6fc5d1fc09702dac66d23.tar.gz
Print missing deps when packing KSP2 uber jar
-rw-r--r--kotlin-analysis-api/build.gradle.kts27
1 files changed, 27 insertions, 0 deletions
diff --git a/kotlin-analysis-api/build.gradle.kts b/kotlin-analysis-api/build.gradle.kts
index bf087d54..9d3c2ee1 100644
--- a/kotlin-analysis-api/build.gradle.kts
+++ b/kotlin-analysis-api/build.gradle.kts
@@ -1,4 +1,5 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import java.io.ByteArrayOutputStream
description = "Kotlin Symbol Processing implementation using Kotlin Analysis API"
@@ -23,6 +24,7 @@ plugins {
}
val depSourceJars by configurations.creating
+val depJarsForCheck by configurations.creating
dependencies {
listOf(
@@ -91,6 +93,10 @@ dependencies {
implementation(project(":common-util"))
testImplementation(kotlin("stdlib", aaKotlinBaseVersion))
+
+ depJarsForCheck("org.jetbrains.kotlin", "kotlin-stdlib", aaKotlinBaseVersion)
+ depJarsForCheck(project(":api"))
+ depJarsForCheck(project(":common-deps"))
}
sourceSets.main {
@@ -123,6 +129,27 @@ tasks.withType<ShadowJar>() {
archiveClassifier.set("")
minimize()
mergeServiceFiles()
+
+ doLast {
+ // Checks for missing dependencies
+ val jarJar = archiveFile.get().asFile
+ val depJars = depJarsForCheck.resolve().map(File::getPath)
+ val stdout = ByteArrayOutputStream()
+ try {
+ exec {
+ executable = "jdeps"
+ args = listOf(
+ "--multi-release", "base",
+ "--missing-deps",
+ "-cp", depJars.joinToString(":"), jarJar.path
+ )
+ standardOutput = stdout
+ }
+ } catch (e: org.gradle.process.internal.ExecException) {
+ logger.warn(e.message)
+ }
+ logger.warn(stdout.toString())
+ }
}
tasks {