manually specify shadowjar task on shaded addons

This commit is contained in:
dfsek
2021-12-30 01:22:50 -07:00
parent 7039a28326
commit 570a3bccc5
4 changed files with 19 additions and 5 deletions
+6 -1
View File
@@ -1,3 +1,4 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import java.io.File import java.io.File
import java.util.function.Predicate import java.util.function.Predicate
import org.gradle.api.Project import org.gradle.api.Project
@@ -20,7 +21,11 @@ fun Project.addonDir(dir: File, task: Task) {
it.delete() it.delete()
} }
forSubProjects(":common:addons") { 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 boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else ""
val target = File(dir, boot + jar.archiveFileName.get()) val target = File(dir, boot + jar.archiveFileName.get())
+13 -2
View File
@@ -9,6 +9,7 @@ import java.util.zip.ZipOutputStream
import org.gradle.api.DefaultTask import org.gradle.api.DefaultTask
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.plugins.BasePluginExtension import org.gradle.api.plugins.BasePluginExtension
import org.gradle.api.tasks.bundling.AbstractArchiveTask
import org.gradle.jvm.tasks.Jar import org.gradle.jvm.tasks.Jar
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.configure
@@ -34,7 +35,12 @@ fun Project.configureDistribution() {
group = "terra" group = "terra"
forSubProjects(":common:addons") { forSubProjects(":common:addons") {
afterEvaluate { 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)) val zip = ZipOutputStream(FileOutputStream(dest))
forSubProjects(":common:addons") { 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") 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 "" val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else ""
@@ -17,7 +17,6 @@ dependencies {
} }
tasks.named<ShadowJar>("shadowJar") { tasks.named<ShadowJar>("shadowJar") {
archiveClassifier.set("")
relocate("org.apache.commons", "com.dfsek.terra.addons.sponge.lib.commons") relocate("org.apache.commons", "com.dfsek.terra.addons.sponge.lib.commons")
} }
@@ -13,7 +13,6 @@ dependencies {
} }
tasks.named<ShadowJar>("shadowJar") { tasks.named<ShadowJar>("shadowJar") {
archiveClassifier.set("")
relocate("org.apache.commons", "com.dfsek.terra.addons.terrascript.lib.commons") relocate("org.apache.commons", "com.dfsek.terra.addons.terrascript.lib.commons")
} }