Will man Java Programme ausliefern, benötigt man auf einem Apple ein dmg Archive. Das kann wie folgt erstellt werden.
In der pom.xml folgendes Plugin einfügen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<plugin> <groupId>sh.tak.appbundler</groupId> <artifactId>appbundle-maven-plugin</artifactId> <version>1.0.2</version> <configuration> <mainClass>de.wenzlaff.xmltransform.StartGui</mainClass> <iconFile>${basedir}/src/main/resources/tw.icns</iconFile> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>bundle</goal> </goals> </execution> </executions> </plugin> |
Die Main Klasse mit der Klasse ersetzen, die gestartet werden soll. Auch der Pfad zum Icon anpassen. Evl. noch eine eigene plist setzen mit:
|
<dictionaryFile>YourCustomInfo.plist</dictionaryFile> |
Dann das Maven Goal mvn package appbundle:bundle ausführen
und in das target Verzeichnis mit einer Konsole gehen und folgenden Befehl mit hdiutil ausführen:
|
# hdiutil create -srcfolder path/to/archive path/to/YourApplication.dmg z.B.: hdiutil create -srcfolder twcsvtocsv.app/ TW.dmg |
Schon wird das TW.dmg Archive im target Verzeichnis erzeugt. Wer das auch noch als Maven Task automatisieren möchte, trägt noch folgendes ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<plugin> <artifactId>exec-maven-plugin</artifactId> <groupId>org.codehaus.mojo</groupId> <executions> <execution> <id>dmg-distro</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>/usr/bin/hdiutil</executable> <arguments> <argument>create</argument> <argument>-srcfolder</argument> <argument>target/${project.artifactId}-${project.version}</argument> <argument>-format</argument> <argument>UDZO</argument> <argument>-volname</argument> <argument>${project.artifactId}-${project.version}</argument> <argument>target/${project.artifactId}-${project.version}.dmg</argument> </arguments> </configuration> </execution> </executions> </plugin> |
Als Alternative könnte man auch das osxappbundle-maven-plugin verwenden. Das hat Abhängigkeiten zu Apple’s Java launcher, und ist nicht für Java Version 7 und größer.
Aber wer will, kann dann das als Alternative eintragen:
|
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>osxappbundle-maven-plugin</artifactId> <version>1.0-alpha-2</version> <configuration> <mainClass>de.wenzlaff.xmltransform.StartGui</mainClass> <iconFile>${basedir}/src/main/resources/tw.icns</iconFile> </configuration> <executions> <execution> <goals> <goal>bundle</goal> </goals> </execution> </executions> </plugin> |