Maven plugin that creates an Application Bundle for OS X containing all your project dependencies and the necessary metadata
Clone or download
Latest commit 4cdaf7e Jun 27, 2018
Permalink
Failed to load latest commit information.
native
src hotfix #54 Jun 27, 2018
.gitignore Add capability to use a shared jre between multiple applications by s… Sep 9, 2016
LICENSE fix license Aug 30, 2016
README.md version 1.2.0 Sep 29, 2016
build.sh fix build script for latest xcode Sep 29, 2016
pom.xml [maven-release-plugin] prepare for next development iteration Sep 29, 2016

README.md

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.