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.
I love progress.
Random thoughts about my interests in Java, consulting, scripting in Java and software development (especially for small and medium size organizations).
Subscribe to:
Posts (Atom)
AWS EC2 Hibernate Java SDK v2 Example
I recently wanted to automate the creation of developer VMs in AWS using EC2 instances. To improve the developer experience (DX), I didn'...
-
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 help...
-
Early in my career I took on the role of setting up and operating the build infrastructure of many of the projects I have consulted on. I st...
-
Class loading issues are a common frustration for many Java developers. The dreaded java.langClassNotFoundException means they can forget a...