From 570a3bccc594b784f91b7eb754f9d6da87c59047 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 30 Dec 2021 01:22:50 -0700 Subject: [PATCH] manually specify shadowjar task on shaded addons --- buildSrc/src/main/kotlin/AddonConfig.kt | 7 ++++++- buildSrc/src/main/kotlin/DistributionConfig.kt | 15 +++++++++++++-- .../structure-sponge-loader/build.gradle.kts | 1 - .../structure-terrascript-loader/build.gradle.kts | 1 - 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/AddonConfig.kt b/buildSrc/src/main/kotlin/AddonConfig.kt index b2ff00194..6132f0116 100644 --- a/buildSrc/src/main/kotlin/AddonConfig.kt +++ b/buildSrc/src/main/kotlin/AddonConfig.kt @@ -1,3 +1,4 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import java.io.File import java.util.function.Predicate import org.gradle.api.Project @@ -20,7 +21,11 @@ fun Project.addonDir(dir: File, task: Task) { it.delete() } forSubProjects(":common:addons") { - val jar = (tasks.named("jar").get() as Jar) + val jar = if(tasks.findByName("shadowJar") != null) { + (tasks.named("shadowJar").get() as ShadowJar) + } else { + (tasks.named("jar").get() as Jar) + } val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" val target = File(dir, boot + jar.archiveFileName.get()) diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index afa8a3002..8c1cdebbc 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -9,6 +9,7 @@ import java.util.zip.ZipOutputStream import org.gradle.api.DefaultTask import org.gradle.api.Project import org.gradle.api.plugins.BasePluginExtension +import org.gradle.api.tasks.bundling.AbstractArchiveTask import org.gradle.jvm.tasks.Jar import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure @@ -34,7 +35,12 @@ fun Project.configureDistribution() { group = "terra" forSubProjects(":common:addons") { afterEvaluate { - dependsOn(tasks.getByName("build")) // Depend on addon JARs + if(tasks.findByName("shadowJar") != null) { + dependsOn(tasks.getByName("shadowJar")) // Depend on addon JARs + println("Using shaded JAR for addon ${this.name}") + } else { + dependsOn(tasks.getByName("build")) // Depend on addon JARs + } } } @@ -52,7 +58,12 @@ fun Project.configureDistribution() { val zip = ZipOutputStream(FileOutputStream(dest)) forSubProjects(":common:addons") { - val jar = (tasks.named("jar").get() as Jar) + val jar = if(tasks.findByName("shadowJar") != null) { + (tasks.named("shadowJar").get() as ShadowJar) + } else { + (tasks.named("jar").get() as Jar) + } + println("Packaging addon ${jar.archiveFileName.get()} to ${dest.absolutePath}. size: ${jar.archiveFile.get().asFile.length() / 1024}KB") val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" diff --git a/common/addons/structure-sponge-loader/build.gradle.kts b/common/addons/structure-sponge-loader/build.gradle.kts index b7f5e1309..6220b5ecb 100644 --- a/common/addons/structure-sponge-loader/build.gradle.kts +++ b/common/addons/structure-sponge-loader/build.gradle.kts @@ -17,7 +17,6 @@ dependencies { } tasks.named("shadowJar") { - archiveClassifier.set("") relocate("org.apache.commons", "com.dfsek.terra.addons.sponge.lib.commons") } diff --git a/common/addons/structure-terrascript-loader/build.gradle.kts b/common/addons/structure-terrascript-loader/build.gradle.kts index ad68a5a74..b3544abe6 100644 --- a/common/addons/structure-terrascript-loader/build.gradle.kts +++ b/common/addons/structure-terrascript-loader/build.gradle.kts @@ -13,7 +13,6 @@ dependencies { } tasks.named("shadowJar") { - archiveClassifier.set("") relocate("org.apache.commons", "com.dfsek.terra.addons.terrascript.lib.commons") }