Want more information about what an .msi is doing on your system or what caused a generic and completely useless error message to pop up? Run the following command substituting the path to your .msi from the command line and the output file will contain verbose logs.
msiexec /i filename.msi /l*v log.txt
Jenkins (or Hudson if you work for Oracle) is a great, simple and steady continuous integration and build server. One of its greatest features is that despite being packaged as a standard .war ready to be dropped into your JEE web container of choice … it also contains an embedded web container that makes the .war everything you need in most situations. Simply run
java -jar jenkins.war
and up starts Jenkins on port 8080 in all of its glory. All of Jenkins’ configuration files, plugins, and working directories go under <USER_HOME>/.jenkins by default. Perfect.
Except if you want to run multiple instances on the same machine. We are going to get a config folder collision. It turns out this is a piece of cake, but the docs are hard to find. Jenkins will use a JENKINS_HOME path environement variable for its configuration files if one is set so a simple change means we can run Jenkins out of any directory we desire:
java -DJENKINS_HOME=/path/to/configs -jar jenkins.war
What about the port you say? Winston, the embedded web container used, has a simple property for this too:
java -DJENKINS_HOME=/path/to/configs -jar jenkins.war --httpPort=9090