1+ import org.panteleyev.jpackage.ImageType
2+
13plugins {
24 id(" buildsrc.convention.kotlin-jvm" )
3- id(" org.graalvm.buildtools.native" ) version " 0.10.5"
4- application
5+ id(" org.panteleyev.jpackageplugin" ) version " 1.6.1"
56}
67
78version = " 1.0.0"
89
9- configurations {
10- nativeImageCompileOnly {
11- isCanBeResolved = true
12- }
13- }
14-
1510dependencies {
1611 implementation(libs.jnativehook)
1712 implementation(libs.ktor.client.okhttp)
@@ -20,17 +15,37 @@ dependencies {
2015 implementation(libs.slf4j.simple)
2116}
2217
23- application {
24- mainClass = " dev.schlaubi.mastermind.MainKt"
25- applicationDefaultJvmArgs = listOf (" -agentlib:native-image-agent=config-output-dir=C:\\ Users\\ micha\\ IdeaProjects\\ gtakiller\\ output.json" )
26- }
18+ tasks {
19+ val copyDependencies by registering(Copy ::class ) {
20+ from(configurations.runtimeClasspath).into(layout.buildDirectory.dir(" jars" ))
21+ }
22+
23+ val copyJar by registering(Copy ::class ) {
24+ from(jar).into(layout.buildDirectory.dir(" jars" ))
25+ }
26+
27+ jpackage {
28+ dependsOn(build, copyDependencies, copyJar)
29+ winConsole = true
30+
31+ input = layout.buildDirectory.dir(" jars" ).get().asFile.absolutePath
32+
33+ appName = " GTA KILL"
34+ vendor = " Schlaubi"
35+ type = ImageType .APP_IMAGE
36+
37+ mainJar = jar.get().archiveFile.get().asFile.absolutePath
38+ mainClass = " dev.schlaubi.mastermind.MainKt"
39+
40+ destination = layout.buildDirectory.dir(" dist" ).get().asFile.absolutePath
41+ }
2742
28- graalvmNative {
29- toolchainDetection = true
43+ register<Tar >(" packageDist" ) {
44+ dependsOn(jpackage)
45+ from(jpackage.get().destination + " /" + jpackage.get().appName)
3046
31- binaries {
32- named(" main" ) {
33- mainClass = " dev.schlaubi.mastermind.MainKt"
34- }
47+ compression = Compression .GZIP
48+ archiveExtension = " tar.gz"
49+ destinationDirectory = layout.buildDirectory.dir(" dist" )
3550 }
3651}
0 commit comments