aboutsummaryrefslogtreecommitdiff
path: root/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts')
-rw-r--r--build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts31
1 files changed, 31 insertions, 0 deletions
diff --git a/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts
new file mode 100644
index 00000000..7abb3376
--- /dev/null
+++ b/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+import dokkabuild.PublicationName
+
+plugins {
+ id("dokkabuild.java")
+ id("dokkabuild.publish-base")
+ id("com.github.johnrengelman.shadow")
+}
+
+java {
+ withSourcesJar()
+ withJavadocJar()
+}
+
+tasks.shadowJar {
+ // separate directory because otherwise Gradle complains about multiple tasks writing into the same file
+ destinationDirectory.set(project.layout.buildDirectory.dir("shadowLibs"))
+ // removes the `-all` classifier from the artifact name
+ archiveClassifier.set("")
+}
+
+publishing.publications.register<MavenPublication>(PublicationName.JVM) {
+ // shadow.component call should be after the shadowJar task is configured in a build script,
+ // because if not, shadow uses the wrong archiveFile (as we change destinationDirectory and archiveClassifier)
+ shadow.component(this)
+ artifact(tasks.named("sourcesJar"))
+ artifact(tasks.named("javadocJar"))
+}