Packaging A Robot To A Jar from the Command Line?
I have to say, not too much of a fan of Ant personally. Comparing Makefiles and Ant XML I'd agree the XML is more portable, but I'd consider the Makefile to similar in terms of friendliness for manual editing. On one hand Make is annoyingly picky about certain whitespace, but on the other hand I find some of the boilerplate string repetition in XML to make things less human-readable, especially when not using a syntax highlighting text editor.
(Then again, part of my not being a fan of Ant may be on account of having seen Ant badly abused as a general-ish purpose scripting language. In other words... being forced to write certain kinds of scripting flow control in Ant XML can probably make someone start to dislike Ant...)
I only use it to package my robot. How do you do even do 'general flow control' in ant? The only ways I can think of are massively involved.
Maven tries to fight scripting logic abuse in Ant by hard-coding everything in a strict life-cycle, which is hard to customize. It still doesn't solve the problem though. There is a lot of room for plug-in abuse in Maven as well. But well behaved Maven scripts tend to be smaller than well behaved Ant scripts in general.
You do general flow control in Ant by using ant-contrib add-on. Ant becomes a Turing complete language with it.
For those who don't abuse the scripting language, don't abuse plug-ins and don't like XML, there is Gradle. Which is Turing complete like Ant + ant-contrib, have full support for Maven plug-ins and repositories, and uses Groovy/Java syntax instead of XML.