sourceSets.main.java.srcDirs = ["src/"] project.ext.mainClassName = "mindustry.server.ServerLauncher" project.ext.assetsDir = new File("../core/assets") ext.getServerFolder = { return "../deploy/${appName}-server-${getVersionString()}" } task run(dependsOn: classes, type: JavaExec){ mainClass = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true if(project.hasProperty("appArgs")){ args Eval.me(appArgs) } if(project.hasProperty("jvmArgs")){ jvmArgs((List)Eval.me(project.getProperties()["jvmArgs"])) } } task debug(dependsOn: classes, type: JavaExec){ mainClass = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true debug = true } task dist(type: Jar, dependsOn: configurations.runtimeClasspath){ from files(sourceSets.main.output.classesDirs) from files(sourceSets.main.output.resourcesDir) from {configurations.runtimeClasspath.collect{ it.isDirectory() ? it : zipTree(it) }} from files(project.assetsDir) exclude("sprites/**") exclude("music/**") exclude("sounds/**") exclude("fonts/**") exclude("bundles/**") exclude("cubemaps/**") exclude("cursors/**") exclude("shaders/**") exclude("icons/icon.icns") exclude("icons/icon.ico") exclude("icons/icon_64.png") duplicatesStrategy = 'exclude' manifest{ attributes 'Main-Class': project.mainClassName } } task dzip(type: Zip){ from getServerFolder() archiveFileName = "${generateDeployName('server')}.zip" destinationDirectory = file("../deploy/") finalizedBy 'cleanup' } task cleanup{ doLast{ delete{ delete getServerFolder() } } } task deploy{ dependsOn "dist" finalizedBy 'dzip' doLast{ copy{ from "build/libs/server-release.jar" into getServerFolder() rename("server-release.jar", "server.jar") } copy{ from "server_template" into getServerFolder() } } } dist.dependsOn classes