From 2ef5bd8ba248215941a1951b20e231b0a1069f76 Mon Sep 17 00:00:00 2001 From: akastijn Date: Sun, 29 Jun 2025 02:17:09 +0200 Subject: [PATCH] Add ShadowJar plugin for shaded build Configure package relocation to avoid dependency conflicts. Update build process to produce minimized ShadowJar artifacts and disable default jar task. --- build.gradle.kts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 2fd3a72..312b06f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,22 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + plugins { id("java") + id("com.gradleup.shadow") version "9.0.0-beta17" } group = "com.alttd.webinterface" version = "1.0-SNAPSHOT" description = "WebInterface" +java { + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + repositories { mavenCentral() maven("https://nexus.velocitypowered.com/repository/maven-public/") @@ -25,3 +36,25 @@ dependencies { tasks.test { useJUnitPlatform() } + +tasks.withType { + // Relocate packages to avoid conflicts with other plugins + relocate("io.javalin", "com.alttd.webinterface.shaded.io.javalin") + relocate("org.slf4j", "com.alttd.webinterface.shaded.org.slf4j") + relocate("kotlin", "com.alttd.webinterface.shaded.kotlin") + relocate("org.eclipse.jetty", "com.alttd.webinterface.shaded.org.eclipse.jetty") + + minimize() +} + +tasks.build { + dependsOn(tasks.shadowJar) +} + +tasks.jar { + enabled = false +} + +artifacts { + archives(tasks.shadowJar) +}