plugins { id 'org.beryx.runtime' version '1.12.5' } sourceSets.main.java.srcDirs = [ "src/" ] project.ext.mainClassName = "com.etheller.warsmash.desktop.DesktopLauncher" project.ext.assetsDir = new File("../core/assets"); import org.gradle.internal.os.OperatingSystem if(project.hasProperty("args")) { ext.cmdargs = project.getProperty("args") } else { ext.cmdargs = "" } application { mainClass = project.ext.mainClassName applicationName = 'warsmash' applicationDefaultJvmArgs = [] } task debug(dependsOn: classes, type: JavaExec) { main = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true debug = true } task dist(type: Jar) { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) manifest { attributes 'Main-Class': project.mainClassName } dependsOn configurations.runtimeClasspath from files(sourceSets.main.output.classesDirs) from files(sourceSets.main.output.resourcesDir) from {configurations.runtimeClasspath.collect {zipTree(it)}} from files(project.assetsDir) with jar } dist.dependsOn classes eclipse { project { name = appName + "-desktop" linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/core/assets' } } task afterEclipseImport(description: "Post processing after project generation", group: "IDE") { doLast { def classpath = new XmlParser().parse(file(".classpath")) new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]); def writer = new FileWriter(file(".classpath")) def printer = new XmlNodePrinter(new PrintWriter(writer)) printer.setPreserveWhitespace(true) printer.print(classpath) } }