Упаковка java приложения в бандл Mac OS

Пример подразумевает использованеи maven.

Для начала добавим необходимые свойства в файл pom.xml

<properties>
<exec.mainClass>ru.openitstudio.sshide.App</exec.mainClass>
<iconFile>src/main/resources/sshide.icns</iconFile>
</properties>

Тут в секции exec.mainClass указан путь к классу для исполнения, в котором есть функция main. В опциональной секции iconFile указан путь относительно корня проекта к файлу с иконкой приложения. 

Теперь добавим плагин в секцию build: 

<plugin>
<groupId>io.github.fvarrui</groupId>
<artifactId>javapackager</artifactId>
<version>0.9.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>

Теперь можно просто запустить команду

mvn package

На выходе получим образ в формате dmg.

Под капотом плагин использует javapackager, который входит в состав JDK. С помощью данного плагина можно так же делать сборки exe, deb, rpm пакетов для различных платформ.

Теги:

java Mac OS