When we talk about software automation, the first thing that comes to my mind is an automatic software build. At the end of any task or great feature, we need to deliver software. So, to do this goal we build our awesome software, right!?
In most of the cases, releases are spaced by a long period of time. At this point, a manual build process isn’t a huge problem. But if you need to deliver a new software version every day?
Every manual build has a high chance of error, especially on Friday afternoons. We are humans, sometimes we forget a step. But why does every new release get us stressed due to simple errors? We’re going to lose time to fix these common problems instead of developing a great code. On a small team, it’s essential!
The build automation process will fix this problem. Anytime you need to build, compile or test your software, run a single command to get things done.
On Java world, there are some nice tools that will ease this process. You will need to set the project configuration once to run it on any developer machine, not only on yours. Better, you’ll be able to run it in an isolated environment to be sure that everything is running fine. This can be your first step to a Continuous Integrated process. A higher build quality with a lower cost and effort.
Let’s check some of the most known. ANT is a Java library tool that uses files to describe and automate the build. IVY, another great Apache project, is focused on managing the dependency problems. Maven and Gradle have similar objectives, besides controlling build and dependencies, they aim to help other topics in the software lifecycle management.
This series will cover Maven. A primary build tool that will help on project management providing quality information. Configure reporting, documentation, tests, and dependency list creating a uniform build process. All based on a project object model, the POM file.
I’ll guide you through topics:
This guide will help us to deal with most of the real world problems. During the process, feel free to ask for help. Remember that it is my main goal, to help you on your project and improve your software delivery.