Guides
Packaging your app
Build a self-contained application image and installer with jlink + jpackage.
Build each package on its own OS — jpackage cannot cross-produce.
./gradlew jdeskFrontendBuild # 1. frontend -> ui/dist
./gradlew jdeskRuntimeImage # 2. jlink trimmed runtime
./gradlew jdeskPackage # 3. jpackage application image
./gradlew jdeskInstaller # 4. native installer (DMG/MSI/DEB...)
jdeskPackage also writes checksums.sha256 and a CycloneDX SBOM. Installers are UNSIGNED without a signing identity.