Search code examples
installationwindows-installerxamppjava-web-start

How to create a Spring Web App Installer with easy upgrade management?


What is the standard way to support hassle free installer packages for a spring based web app. My target platform is Windows.

I need the user to be able to go to a webpage download a msi package/executable/zip file whatever is convenient. The installer checks if Java is installed and automatically installs Java for the operating system if not already there. Then it downloads the required files - spring based webapp, mysql database, tomcat from a preconfigured location and installs it in a directory that the user can choose.

I also want to create upgrade packages that will update only the required files in the installation directory.

I just don't want the user to go install mysql, tomcat, spring webapp separately.

Used XAMPP in the past with some .bat files. Anything better and more standard than that? I just cannot expect the user to install java and other dependencies separately. I can use jportable but would prefer something more standard from Java community.

Haven't used Java Web Start but is it worth exploring for my requirements?

Should I create a custom windows installer deployment using Visual Studio?

Any other suggestions?

Thanks in advance!


Solution

  • I've had to create some pretty complex installer processes in the past and have been able to accomplish it using the Nullsoft install system (its open source). You can learn more about it here: http://nsis.sourceforge.net/Main_Page

    It generates an executable package that can copy files, download files, execute other files, etc, all from a relatively easy to manage source script.

    Quote from their website "The NSIS distribution includes a set of plug-ins that allow you to download files from the internet, make internet connections, patch existing files and more."