plugins { id 'java' id 'groovy' id 'application' id 'org.openjfx.javafxplugin' version '0.0.14' id 'com.google.osdetector' version '1.7.3' id 'org.beryx.jlink' version '2.26.0' } import org.apache.tools.ant.filters.ReplaceTokens repositories { mavenCentral() mavenLocal() } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } application { mainModule = 'biz.nellemann.mdexpl' mainClass = 'biz.nellemann.mdexpl.App' } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 toolchain { languageVersion = JavaLanguageVersion.of(17) } } /* This is to be able to build with a JDK not bundled with JavaFX */ javafx { version = '17.0.8' modules = [ 'javafx.controls', 'javafx.fxml' ] // platform("linux-aarch64") } dependencies { implementation 'org.slf4j:slf4j-api:2.0.7' // Logging API runtimeOnly 'org.slf4j:slf4j-simple:2.0.7' // Logging API implementation 'javax.inject:javax.inject:1' implementation 'javax.annotation:javax.annotation-api:1.3.2' implementation 'org.jmdns:jmdns:3.5.8' testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' testImplementation 'org.slf4j:slf4j-simple:2.0.7' } test { useJUnitPlatform() } jlink { forceMerge 'slf4j' options = [ '--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages' ] launcher { name = 'mDNS-Explorer' noConsole = true } // Only works with Java 14 (and later) jpackage { imageName = "mDNS-Explorer" skipInstaller = true installerName = "mDNS-Explorer-${osdetector.arch}" installerOptions += [ '--vendor', 'Nellemann Data', '--description', 'mDNS Explorer', '--copyright', 'Mark Nellemann ', '--app-version', version ] // Requires: https://wixtoolset.org/ to create installer on Windows if(osdetector.os == 'windows') { installerType = 'msi' skipInstaller = false installerOptions += [ '--win-per-user-install', '--win-dir-chooser', '--win-menu', // '--icon', 'src/main/resources/icon.ico' ] } // Requires: xcode-select --install if(osdetector.os == 'osx') { installerType = 'dmg' skipInstaller = false installerOptions += [ //'--icon', 'src/main/resources/icon.icns' ] } if(osdetector.os == 'linux') { skipInstaller = false installerOptions += [ '--linux-menu-group', 'Internet', '--linux-shortcut', '--linux-deb-maintainer', 'mark.nellemann@gmail.com', '--linux-rpm-license-type', 'APACHE-20', '--icon', 'src/main/resources/icon.png', ] } } } tasks.processResources { filesMatching('**/configuration.properties') { filter(ReplaceTokens, tokens: [copyright: '2023', version: System.env.BITBUCKET_BUILD_NUMBER ?: 'development' ]) } }