diff --git a/buildSrc/src/main/kotlin/AddonConfig.kt b/buildSrc/src/main/kotlin/AddonConfig.kt index 96221b3a7..ec585ba8e 100644 --- a/buildSrc/src/main/kotlin/AddonConfig.kt +++ b/buildSrc/src/main/kotlin/AddonConfig.kt @@ -3,7 +3,6 @@ import java.io.File import java.util.function.Predicate import org.gradle.api.Project import org.gradle.api.Task -import org.gradle.jvm.tasks.Jar import org.gradle.kotlin.dsl.extra import kotlin.streams.asStream @@ -12,28 +11,33 @@ import kotlin.streams.asStream * Configures a directory where addons will be put. */ fun Project.addonDir(dir: File, task: Task) { - task.dependsOn("compileAddons") - task.doFirst { - dir.parentFile.mkdirs() - matchingAddons(dir) { - it.name.startsWith("Terra-") // Assume everything that starts with Terra- is a core addon. - }.forEach { - println("Deleting old addon: " + it.absolutePath) - it.delete() + val moveAddons = tasks.register("moveAddons" + task.name) { + dependsOn("compileAddons") + doLast { + dir.parentFile.mkdirs() + matchingAddons(dir) { + it.name.startsWith("Terra-") // Assume everything that starts with Terra- is a core addon. + }.forEach { + println("Deleting old addon: " + it.absolutePath) + it.delete() + } + forSubProjects(":common:addons") { + val jar = tasks.named("shadowJar").get() as ShadowJar + + val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" + val target = File(dir, boot + jar.archiveFileName.get()) + + val base = "${jar.archiveBaseName.get()}-${version}" + + println("Copying addon ${jar.archiveFileName.get()} to ${target.absolutePath}. Base name: $base") + + jar.archiveFile.orNull?.asFile?.copyTo(target) + } + } + } - forSubProjects(":common:addons") { - val jar = tasks.named("shadowJar").get() as ShadowJar - - val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" - val target = File(dir, boot + jar.archiveFileName.get()) - - val base = "${jar.archiveBaseName.get()}-${version}" - - println("Copying addon ${jar.archiveFileName.get()} to ${target.absolutePath}. Base name: $base") - - jar.archiveFile.orNull?.asFile?.copyTo(target) - } - } + + task.dependsOn(moveAddons) } fun matchingAddons(dir: File, matcher: Predicate): Set {