Fear, Magic, and Maven
For the longest time, I was an Ant bigot. Before Ant, builds in Java were either all manual calls to javac, perhaps shell scripts if you were lucky, or done via some IDE magic for you. Ant, like the venerable GNU make and other tools before it, helped provide an automated, repeatable way to build and assemble complex projects. Write a little XML file with the steps for your process, and then a simple call to "ant" would start things happening. Ant was a god-send in large projects since it could eventually handle everything from generating source code all the way to deploying your project to a server. No more builds by hand! So why would anyone go to any other tool? Well, putting together Ant scripts slowly became a development effort unto themselves. The scripts themselves got more and more complex. You had to start downloading extra jars to extend the functionality of Ant (although the Ant team very quickly rectified this by bundling up the most popular plug-ins int...