SBT plugin for building installers with Install4J
sbt-install4j
is available for sbt-1.x.
Import sbt-install4j
plugin to use install4j
command.
addSbtPlugin("com.github.jpsacha" % "sbt-install4j" % "1.5.0")
Sample use, add following to your build.sbt
:
exportJars := true
This will export dependent JARs that will be copied to the installer
enablePlugins(SBTInstall4J)
install4jProjectFile := "installer/example.install4j"
SBT tasks provided by sbt-install4j
plugin:
-
install4j
: Task - Builds Install4J project. Simple usage from SBT REPLsbt> install4j
It will build project defined in by setting
install4jProjectFile
It can take optional arguments that are passed by to the Install4J compiler. Refer to
install4jc
documentation in Install4J Help for list of supported command line options. You can print option summary from SBT REPL usingsbt> install4j --help
Example of only building
windows
media typesbt> install4j -m windows
-
install4jCopyDependedJars
: Task - Copies project dependencies to directoryinstall4jDependedJarsDir
SBT settings provided by sbt-install4j
plugin:
-
install4jCopyDependedJarsExclusions
: Seq[String] - List of regex expressions that match files that will be excluded from copying. -
install4jCopyDependedJarsEnabled
: Boolean - iftrue
dependent jars will be copies, iffalse
they will be not. -
install4jcFile
: File - Location of the install4j's command line compilerinstall4jc[.exe]
. It can be found in thebin
directory of the install4j installation. Default can be set with environment variableINSTALL4JC_FILE
.install4jcFile := file("C:/Program Files/install4j8/bin/install4jc.exe")
-
install4jProjectFile
: String - Relative path to the install4j project file that should be build. -
install4jDependedJarsDir
: String - Location where dependent jars will be copied. -
install4jExtraOptions
: Seq[String] - "Additional command line options passed to the compiler." -
install4jVerbose
: Boolean - Enables verbose mode. -
install4jRelease
: String - Override the application version. Version number components can be alphanumeric and should be separated by dots, dashes or underscores. -
install4jCompilerVariables
: Map[String, String] - Override a compiler variable with a different value. In the map, thekey
is variable's name, thevalue
is variable's value. -
install4jHomeDir
: File - Deprecated. Install4J installation directory. It assumes that Install4J compiler is in subdirectorybin
. Default can be set with environment variableINSTALL4J_HOME
. This option is deprecated, use environment variableINSTALL4JC_FILE
or settinginstall4jcFile
instead.
The sbt-install4j
executes Install4J compiler. It needs to know its location. It will attempts to determine location base on the OS used. On Windows it is assumed to be:
C:\Program Files\Install4J10\bin\intall4jc.exe
On Mac OS X:
/Applications/install4j.app/Contents/Resources/app/bin/install4jc
On Linux:
/opt/install4j10/bin/install4jc
If the Install4J is installed in a different location you can specify location of the compiler using the environment
variable INSTALL4JC_FILE
, property INSTALL4JC_FILE
, or SBT setting install4jcFile
. For multi-platform builds it is
preferred to use the environment variable INSTALL4JC_FILE
.
You can set the property variable when starting SBT using -D
option, for instance:
$ sbt -DINSTALL4JC_FILE="C:/Program Files/install4j11/bin/install4jc.exe"
ScalaFX Ensemble is an example of an application that is making use of sbt-install4j
top create an installer with Install4J
If you use Install4J API in your application and using version other than the default for sbt-install4j
you will need to set environment variable INSTALL4J_HOME
.
For instance, sbt-install4j
uses Install4J 7 as default, but you have Install4J 9 installed, then set INSTALL4J_HOME
the installation directory. On Windows that would typically be C:\Program Files\install4j10
To see debugging information set SBT logging level to debug
:
sbt> debug
Look in the log for lines prefixed with [debug] [sbt-install4j]
.
sbt-install4j is licensed under Apache 2.0 license.