plugins { java id("com.gradleup.shadow") version "8.3.9" } group = "games.dmg" version = providers.gradleProperty("releaseVersion") .orElse("0.1.0-SNAPSHOT") .get() repositories { mavenCentral() maven("https://repo.papermc.io/repository/maven-public/") } dependencies { compileOnly("com.velocitypowered:velocity-api:3.4.0-SNAPSHOT") annotationProcessor("com.velocitypowered:velocity-api:3.4.0-SNAPSHOT") implementation("com.google.code.gson:gson:2.13.2") testImplementation(platform("org.junit:junit-bom:5.14.3")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } java { toolchain.languageVersion.set(JavaLanguageVersion.of(17)) } val generatedVersionDirectory = layout.buildDirectory.dir("generated/sources/version/java/main") val generateVersionSource = tasks.register("generateVersionSource") { val pluginVersion = providers.provider { project.version.toString() } inputs.property("pluginVersion", pluginVersion) outputs.dir(generatedVersionDirectory) doLast { val output = generatedVersionDirectory.get() .file("games/dmg/accountmanager/BuildMetadata.java") .asFile output.parentFile.mkdirs() output.writeText( """package games.dmg.accountmanager; public final class BuildMetadata { public static final String VERSION = "${pluginVersion.get()}"; private BuildMetadata() {} } """ ) } } sourceSets.main { java.srcDir(generatedVersionDirectory) } tasks.compileJava { dependsOn(generateVersionSource) } tasks.test { useJUnitPlatform() } tasks.shadowJar { archiveClassifier.set("") relocate("com.google.gson", "games.dmg.accountmanager.lib.gson") } tasks.build { dependsOn(tasks.shadowJar) }