SY
sya-ri/minecraft-server-gradle-plugin
Launch Minecraft servers using Gradle task. For Bukkit, Spigot, Paper, etc..
minecraft-server-gradle-plugin
Launch Minecraft servers using Gradle task. For Bukkit, Spigot, Paper, etc..
Installation
build.gradle
plugins {
id 'dev.s7a.gradle.minecraft.server' version '4.0.2'
}build.gradle.kts
plugins {
id("dev.s7a.gradle.minecraft.server") version "4.0.2"
}Options
| Name | Default | Description |
|---|---|---|
| jarUrl | Required️ | URL to Download the .jar |
| jarName | server.jar |
Jar File Name After Download |
| serverDirectory | build/MinecraftServer |
Working Directory |
| jvmArgument | [] |
Java Options |
| serverArgument | [] |
Server Options |
| nogui | true |
Without Vanilla GUI |
| agreeEula | false |
Agree to the Minecraft EULA |
Example
Warning
This plugin doesn't have a default task. So you have to define it yourself.
Simple usage
build.gradle.kts
task<LaunchMinecraftServerTask>("launchMinecraftServer") {
jarUrl.set(JarUrl.Paper("1.19.2"))
agreeEula.set(true)
}For testing a plugin
build.gradle.kts
task<LaunchMinecraftServerTask>("testPlugin") {
dependsOn("build")
doFirst {
copy {
from(layout.buildDirectory.asFile.get().resolve("libs/${project.name}.jar"))
into(layout.buildDirectory.asFile.get().resolve("MinecraftServer/plugins"))
}
}
jarUrl.set(JarUrl.Paper("1.19.2"))
agreeEula.set(true)
}For testing a multi-version supporting plugin
build.gradle.kts
listOf(
"8" to "1.8.8",
"9" to "1.9.4",
"10" to "1.10.2",
"11" to "1.11.2",
"12" to "1.12.2",
"13" to "1.13.2",
"14" to "1.14.4",
"15" to "1.15.2",
"16" to "1.16.5",
"17" to "1.17.1",
"18" to "1.18.2",
"19" to "1.19.4",
"20" to "1.20.4"
).forEach { (name, version) ->
task<LaunchMinecraftServerTask>("testPlugin$name") {
dependsOn("build")
doFirst {
copy {
from(layout.buildDirectory.asFile.get().resolve("libs/${project.name}.jar"))
into(layout.buildDirectory.asFile.get().resolve("MinecraftServer$name/plugins"))
}
}
serverDirectory.set(layout.buildDirectory.asFile.get().resolve("MinecraftServer$name").absolutePath)
jarUrl.set(JarUrl.Paper(version))
agreeEula.set(true)
}
}Supported JarUrl
- Paper
- Velocity
- Waterfall
- Fabric
- Mohist
- LocalFile
On this page
Languages
Kotlin99.5%Java0.5%
MIT License
Created June 23, 2021
Updated February 11, 2026