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 := trueThis 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> install4jIt will build project defined in by setting
install4jProjectFileIt can take optional arguments that are passed by to the Install4J compiler. Refer to
install4jcdocumentation in Install4J Help for list of supported command line options. You can print option summary from SBT REPL usingsbt> install4j --helpExample of only building
windowsmedia 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 - iftruedependent jars will be copies, iffalsethey will be not. -
install4jcFile: File - Location of the install4j's command line compilerinstall4jc[.exe]. It can be found in thebindirectory 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, thekeyis variable's name, thevalueis 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_FILEor settinginstall4jcFileinstead.
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> debugLook in the log for lines prefixed with [debug] [sbt-install4j].
sbt-install4j is licensed under Apache 2.0 license.
