Implemented gradle application plugin

This commit is contained in:
Collin Smith 2020-11-19 10:20:35 -08:00
parent cc8f9c82a8
commit 374fc8faa9

View File

@ -1,13 +1,15 @@
apply plugin: 'java'
apply plugin: 'application'
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.internal.os.OperatingSystem
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.resources.srcDirs += [ file('assets').path ]
project.ext.mainClassName = 'com.riiablo.mpq.MPQViewer'
project.ext.visuiVersion = '1.4.2'
project.ext {
visuiVersion = '1.4.2'
}
dependencies {
implementation project(':core')
@ -18,24 +20,35 @@ dependencies {
implementation "com.kotcrab.vis:vis-ui:$visuiVersion"
}
task run(dependsOn: classes, type: JavaExec) {
main = project.mainClassName
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
workingDir = file('assets').path
ignoreExitValue = true
if(Os.isFamily(Os.FAMILY_MAC))
jvmArgs += "-XstartOnFirstThread"
application {
mainClass = 'com.riiablo.mpq.MPQViewer'
}
task dist(dependsOn: classes, type: Jar) {
from files(sourceSets.main.output.classesDirs)
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
from files(file('assets').path);
run {
workingDir = rootProject.file('assets').path
setIgnoreExitValue(true)
manifest {
attributes 'Main-Class': project.mainClassName
}
// Required to run LWJGL3 java apps on MacOS
if (OperatingSystem.current() == OperatingSystem.MAC_OS) {
jvmArgs += "-XstartOnFirstThread"
}
}
jar {
archiveBaseName = project.name
// These can be excluded because they add to the jar size but libGDX 1.9.11 can't use them.
// If your libGDX version is 1.9.10 or earlier, or is 1.9.12-SNAPSHOT or later, you can leave
// the following line commented; if you use 1.9.11 exactly, or if you use 1.9.12-SNAPSHOT but
// don't need ARM Linux support, you can uncomment it safely.
// It's always safe to keep that line commented out; it only affects JAR size.
// exclude('linux/arm32/**', 'linux/arm64/**')
dependsOn configurations.runtimeClasspath
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
manifest {
attributes 'Main-Class': application.mainClass
}
doLast {
file(archivePath).setExecutable(true, false)
}
}