{"id":5667,"date":"2015-06-05T17:33:28","date_gmt":"2015-06-05T15:33:28","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=5667"},"modified":"2021-11-22T17:14:31","modified_gmt":"2021-11-22T16:14:31","slug":"wie-koennen-auf-einem-mac-os-x-dmg-apple-disk-image-archive-mit-maven-und-hdiutil-erstellt-werden","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=5667","title":{"rendered":"Wie k\u00f6nnen auf einem Mac OS X dmg (Apple disk image) Archive mit Maven und hdiutil erstellt werden?"},"content":{"rendered":"<p>Will man Java Programme ausliefern, ben\u00f6tigt man auf einem Apple ein <a href=\"https:\/\/de.wikipedia.org\/wiki\/Apple_Disk_Image\" target=\"_blank\" rel=\"noopener noreferrer\">dmg<\/a> Archive. Das kann wie folgt erstellt werden.<\/p>\n<p>In der pom.xml <a href=\"https:\/\/github.com\/federkasten\/appbundle-maven-plugin\">folgendes<\/a> Plugin einf\u00fcgen:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;plugin&gt;\r\n\t&lt;groupId&gt;sh.tak.appbundler&lt;\/groupId&gt;\r\n\t&lt;artifactId&gt;appbundle-maven-plugin&lt;\/artifactId&gt;\r\n\t&lt;version&gt;1.0.2&lt;\/version&gt;\r\n\t&lt;configuration&gt;\r\n\t\t&lt;mainClass&gt;de.wenzlaff.xmltransform.StartGui&lt;\/mainClass&gt;\r\n\t\t&lt;iconFile&gt;${basedir}\/src\/main\/resources\/tw.icns&lt;\/iconFile&gt;\r\n\t&lt;\/configuration&gt;\r\n\t&lt;executions&gt;\r\n\t\t&lt;execution&gt;\r\n\t\t\t&lt;phase&gt;package&lt;\/phase&gt;\r\n\t\t\t&lt;goals&gt;\r\n\t\t\t\t&lt;goal&gt;bundle&lt;\/goal&gt;\r\n\t\t\t&lt;\/goals&gt;\r\n\t\t&lt;\/execution&gt;\r\n\t&lt;\/executions&gt;\r\n&lt;\/plugin&gt;\r\n<\/pre>\n<p>Die Main Klasse mit der Klasse ersetzen, die gestartet werden soll. Auch der Pfad zum Icon anpassen. Evl. noch eine eigene plist setzen mit:<\/p>\n<pre class=\"lang:default decode:true \" >&lt;dictionaryFile&gt;YourCustomInfo.plist&lt;\/dictionaryFile&gt;<\/pre>\n<p>Dann das Maven Goal <strong>mvn package appbundle:bundle<\/strong> ausf\u00fchren<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2015\/06\/Bildschirmfoto-2015-06-05-um-15.38.21.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2015\/06\/Bildschirmfoto-2015-06-05-um-15.38.21.png\" alt=\"mvn goal\" width=\"678\" height=\"431\" class=\"aligncenter size-full wp-image-5671\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2015\/06\/Bildschirmfoto-2015-06-05-um-15.38.21.png 678w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2015\/06\/Bildschirmfoto-2015-06-05-um-15.38.21-300x191.png 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><br \/>\nund in das target Verzeichnis mit einer Konsole gehen und folgenden Befehl mit hdiutil ausf\u00fchren:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# hdiutil create -srcfolder path\/to\/archive path\/to\/YourApplication.dmg z.B.:\r\nhdiutil create -srcfolder twcsvtocsv.app\/ TW.dmg\r\n<\/pre>\n<p>Schon wird das TW.dmg Archive im target Verzeichnis erzeugt. Wer das auch noch als Maven Task automatisieren m\u00f6chte, tr\u00e4gt noch folgendes ein:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;plugin&gt;\r\n\t&lt;artifactId&gt;exec-maven-plugin&lt;\/artifactId&gt;\r\n\t&lt;groupId&gt;org.codehaus.mojo&lt;\/groupId&gt;\r\n\t&lt;executions&gt;\r\n\t\t&lt;execution&gt;\r\n\t\t\t&lt;id&gt;dmg-distro&lt;\/id&gt;\r\n\t\t\t&lt;phase&gt;package&lt;\/phase&gt;\r\n\t\t\t&lt;goals&gt;\r\n\t\t\t\t&lt;goal&gt;exec&lt;\/goal&gt;\r\n\t\t\t&lt;\/goals&gt;\r\n\t\t\t&lt;configuration&gt;\r\n\t\t\t\t&lt;executable&gt;\/usr\/bin\/hdiutil&lt;\/executable&gt;\r\n\t\t\t\t&lt;arguments&gt;\r\n\t\t\t\t\t&lt;argument&gt;create&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;-srcfolder&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;target\/${project.artifactId}-${project.version}&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;-format&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;UDZO&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;-volname&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;${project.artifactId}-${project.version}&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;argument&gt;target\/${project.artifactId}-${project.version}.dmg&lt;\/argument&gt;\r\n\t\t\t\t\t&lt;\/arguments&gt;\r\n\t\t\t&lt;\/configuration&gt;\r\n\t\t&lt;\/execution&gt;\r\n\t&lt;\/executions&gt;\r\n&lt;\/plugin&gt;\r\n<\/pre>\n<p>Als Alternative k\u00f6nnte man auch das osxappbundle-maven-plugin verwenden. Das hat Abh\u00e4ngigkeiten zu Apple&#8217;s Java launcher, und ist nicht f\u00fcr Java Version 7 und gr\u00f6\u00dfer.<br \/>\nAber wer will, kann dann das als Alternative eintragen:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;plugin&gt;\t\t\t\r\n\t\t&lt;groupId&gt;org.codehaus.mojo&lt;\/groupId&gt;\r\n\t\t&lt;artifactId&gt;osxappbundle-maven-plugin&lt;\/artifactId&gt;\r\n\t\t&lt;version&gt;1.0-alpha-2&lt;\/version&gt;\r\n\t\t&lt;configuration&gt;\r\n\t\t\t&lt;mainClass&gt;de.wenzlaff.xmltransform.StartGui&lt;\/mainClass&gt;\r\n\t\t\t&lt;iconFile&gt;${basedir}\/src\/main\/resources\/tw.icns&lt;\/iconFile&gt;\r\n\t\t&lt;\/configuration&gt;\r\n\t\t&lt;executions&gt;\r\n\t\t\t&lt;execution&gt;\r\n\t\t\t\t&lt;goals&gt;\r\n\t\t\t\t\t&lt;goal&gt;bundle&lt;\/goal&gt;\r\n\t\t\t\t&lt;\/goals&gt;\r\n\t\t\t&lt;\/execution&gt;\r\n\t\t&lt;\/executions&gt;\r\n&lt;\/plugin&gt;\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Will man Java Programme ausliefern, ben\u00f6tigt man auf einem Apple ein dmg Archive. Das kann wie folgt erstellt werden. In der pom.xml folgendes Plugin einf\u00fcgen: &lt;plugin&gt; &lt;groupId&gt;sh.tak.appbundler&lt;\/groupId&gt; &lt;artifactId&gt;appbundle-maven-plugin&lt;\/artifactId&gt; &lt;version&gt;1.0.2&lt;\/version&gt; &lt;configuration&gt; &lt;mainClass&gt;de.wenzlaff.xmltransform.StartGui&lt;\/mainClass&gt; &lt;iconFile&gt;${basedir}\/src\/main\/resources\/tw.icns&lt;\/iconFile&gt; &lt;\/configuration&gt; &lt;executions&gt; &lt;execution&gt; &lt;phase&gt;package&lt;\/phase&gt; &lt;goals&gt; &lt;goal&gt;bundle&lt;\/goal&gt; &lt;\/goals&gt; &lt;\/execution&gt; &lt;\/executions&gt; &lt;\/plugin&gt; Die Main Klasse mit der Klasse ersetzen, die gestartet werden soll. Auch der &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=5667\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie k\u00f6nnen auf einem Mac OS X dmg (Apple disk image) Archive mit Maven und hdiutil erstellt werden?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,229,5,254,79],"tags":[270,2101,2102,2100,2178,2099,312],"class_list":["post-5667","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-imac-2","category-java","category-os-x-2","category-programmierung","tag-apple","tag-archive","tag-create","tag-dmg","tag-java","tag-mvn","tag-zip"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/5667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5667"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/5667\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5667"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}