The project is aimed to pack executable jar file with external (non-bundled) resources into a cross-platfrom installer (based on jpackage - a Packaging Tool from JDK 14)
The installer for desired platform (MacOS, Windows, Linux) could be build only on target platform only.
Native packages will be generated using tools on the target platform. You should install additional software before creating an installer
- for Windows:
- Wix, a third-party tool, is required to generate msi or exe packages
- for Linux:
- fakeroot and beanutils, rpm. They could be installed (on Debian, Ubuntu) simply
apt-get -y install fakeroot apt-get -y install binutils apt-get -y install rpm
- place jar file with any amount of files into assets directory
- modify file
jpackage.properties
in order to reflect your data in application - name, main jar, main class etc. - run
mvn package
- the installer is created
target/dist/${app.name}-{app.version}.{ext}
, where{ext}
is the installer's file extension. It is platform-dependent- for MacOS -
.pkg
and.dmg
- for Windows -
.exe
and.msi
- for Linux -
.deb
and.rpm
- for MacOS -
- Generated installers -
.pkg
and.dmg
intarget/dist
directory - DMG installer in action
- PKG installer in action
- Inside /Applications/MyGreatApp.app/