Wednesday, February 10, 2016

In May of 2009, I wrote the blog post The Ultimate Enterprise Java Build Solution. Over the past 7 years since I wrote the post I have helped half a dozen clients set this system up and had several more tell me they also implemented it after seeing the post or listening to me talk about it at a user group or conference. In the post I talked about using Maven on the developers laptop for local builds, Subversion to store the code, Hudson to grab the code and run the same Maven build that ultimately pushed artifacts to Nexus and code quality metrics to Sonar. Surprisingly this hasn't changed much over the years. In addition to Maven, today you might use Gradle for the builds and in addition to Subversion you might use Git and/or Github for version control. Instead of Hudson you probably would use Jenkins which use to be Hudson and you probably use sonarqube instead of Sonar which is just a name change. You might still use Nexus or one of the other artifact repositories.

One of the things that has changed though is how you might deploy the solution. Instead of installing Jenkins, Nexus and sonarqube individually by hand, now you can use Docker to get you up and going even faster. I have also created a docker-compose.xml file so you can get all of them and their dependencies up and running with once simple command of docker-compose up -d.