plugins { id 'java' id 'application' id 'org.jetbrains.kotlin.jvm' version '1.5.31' id 'org.openjfx.javafxplugin' version '0.0.10' id 'org.beryx.jlink' version '2.24.1' id 'org.javamodularity.moduleplugin' version '1.8.10' } group 'me.mestima' version '2.0' mainClassName = 'me.mestima.zomboidmodscopier.ZomboidCopierKt' repositories { mavenCentral() } sourceCompatibility = '11' targetCompatibility = '11' tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } application { mainModule = 'me.mestima.zomboidmodscopier' mainClass = "$mainClassName" } [compileKotlin, compileTestKotlin].forEach { it.kotlinOptions { jvmTarget = '1.8' } } jar { duplicatesStrategy = 'include' manifest { attributes 'Main-Class': "$mainClassName" } from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } javafx { version = '11.0.2' modules = ['javafx.controls', 'javafx.fxml'] } dependencies { testImplementation('org.testng:testng:7.4.0') } test { useTestNG() } jlink { imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip") options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] launcher { name = 'app' } } jlinkZip { group = 'distribution' }