Automating WiX Installer Builds with Maven

Recently, I worked towards automating the build of all our installers after we integrated Maven into our Java-based projects. We standardized all of our installers on WiX which has proven to be a great tool to reliably build installers.

The rough steps of the build process are:

  1. Have the maven assembly plugin assemble the folder structure of what the application folder will contain. The structure loosely contains a ‘lib’ folder for all the jars, a ‘conf’ folder for configuration files, and a ‘logs’ folder.
  2. Run the third-party paraffin tool to update the WiX source files so the latest version of each jar, snapshot or release, is captured
  3. Pass the WiX source files through some xsl transforms to make sure certain features are turned on, like fully removing uninstalled components on upgrade
  4. Run the WiX candle and light executables on the folder structure to create the actual msi

What has resulted, with the help of Jenkins as our CI server, is a completely automated build of every one of our products with correct versioning, etc. We can check in code, wait 10 minutes, and have a new release appear in a folder share!

Here are all the posts so far:

Tagged with: , , ,
Posted in Java, Jenkins, Maven, WiX

Leave a comment