federkasten / appbundle-maven-plugin

Maven plugin that creates an Application Bundle for OS X containing all your project dependencies and the necessary metadata
Apache License 2.0
180 stars 56 forks source link
apple java jvm maven-plugin oracle

appbundle-maven-plugin

Maven plugin that creates an Application Bundle for OS X containing all your project dependencies and the necessary metadata.

<plugin>
  <groupId>sh.tak.appbundler</groupId>
  <artifactId>appbundle-maven-plugin</artifactId>
  <version>1.2.0</version>
  <configuration>
    <mainClass>your.app.MainClass</mainClass>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>bundle</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Package with following command,

mvn package appbundle:bundle

Use Custom Info.plist and Icon

Put your custom Info.plist and Icon.icns under your maven resource paths (src/main/resources on default configuration).

Configure pom.xml like below,

<configuration>
   <mainClass>your.app.MainClass</mainClass>
   <dictionaryFile>YourCustomInfo.plist</dictionaryFile>
   <iconFile>CustomIncon.icns</iconFile>
</configuration>

Embedd Java Runtime Environment

Locate the JRE or JDK on your Mac (/Library/Java/JavaVirtualMachines/ on default configuration).

Configure pom.xml like below,

<configuration>
   <mainClass>your.app.MainClass</mainClass>
   <jrePath>/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk</jrePath>
</configuration>

How to create DMG

Configure pom.xml like below,

<configuration>
   <mainClass>your.app.MainClass</mainClass>
   <generateDiskImageFile>true</generateDiskImageFile>
</configuration>

About this plugin

As you may know, Apple has dropped Java development from OS X excluding security patches.

mojo's osxappbundle-maven-plugin depends on Apple's Java launcher, so it does not support Java version 7 and future.

Oracle's Java Application Bundler supports other Java runtime (including Java 7, 8 and more), but it does not support maven.

I merged both and fix to work as a maven plugin that supports latest Mac OS X.

License

Copyright 2014 - 2016, Takashi AOKI and other contributors.

Copyright 2012, Oracle and/or its affiliates.

native/main.m is licensed under the GNU General Public License version 2.

Other files are licensed under the Apache License, Version 2.0.