diff options
author | Ting-Yuan Huang <laszio@google.com> | 2024-04-04 10:29:23 -0700 |
---|---|---|
committer | Jiaxiang Chen <roaringacw@gmail.com> | 2024-04-04 11:30:39 -0700 |
commit | ae2423b446e609b012f6fc5d1fc09702dac66d23 (patch) | |
tree | ac6337107a4258867af52d6df5be17cdc19a0e28 | |
parent | e7fb6d1e229398897fff6292d15abe5fa2c1674e (diff) | |
download | ksp-ae2423b446e609b012f6fc5d1fc09702dac66d23.tar.gz |
Print missing deps when packing KSP2 uber jar
-rw-r--r-- | kotlin-analysis-api/build.gradle.kts | 27 |
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 { |