javafx/build.gradle.kts
2025-11-02 16:10:38 +01:00

59 lines
1.4 KiB
Kotlin

plugins {
java
application
id("org.javamodularity.moduleplugin") version "1.8.15"
id("org.openjfx.javafxplugin") version "0.0.13"
id("org.beryx.jlink") version "2.25.0"
}
group = "dev.mecdu"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
val junitVersion = "5.12.1"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
application {
mainModule.set("dev.mecdu.javafx")
mainClass.set("dev.mecdu.javafx.HomeApplication")
}
javafx {
version = "17.0.14"
modules = listOf("javafx.controls", "javafx.fxml")
}
dependencies {
implementation("org.controlsfx:controlsfx:11.2.1")
implementation("org.kordamp.bootstrapfx:bootstrapfx-core:0.4.0")
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
implementation("com.squareup.okhttp3:okhttp:+")
compileOnly("org.projectlombok:lombok:+")
annotationProcessor("org.projectlombok:lombok:1.+")
implementation("com.google.code.gson:gson:+")
}
tasks.withType<Test> {
useJUnitPlatform()
}
jlink {
imageZip.set(layout.buildDirectory.file("/distributions/app-${javafx.platform.classifier}.zip"))
options.set(listOf("--strip-debug", "--compress", "2", "--no-header-files", "--no-man-pages"))
launcher {
name = "app"
}
}