Odi's astoundingly incomplete notesNew entries | Code
What's wrong with Ant
Don't get me wrong. I quite love Ant. But it has some quirks that make life not exactly easy. These quirks leave me thinking why I am not resorting to bash for build scripts. Ant is not a real programming language, since it lacks basic algorithmic structures. That may be a concious design decision but really makes complex build scripts not simpler. The worst annoyances are:
- No simple conditional execution. A simple if-else construct is missing from the basic Ant tasks. Of course there are extensions that add this functionality, but hey, this is somthing so basic!
- Immutable properties. Ant completely lacks real variables. Sometimes they are indispensable.
- The no-replace if younger behaviour of jar, war, etc. If you jar some files and update the jar in the same script with files from a different location, their modification dates control whether they are replaced in the jar or not. This is cumbersome and makes it difficult to e.g. replace config files in EJB applications.
- XML as a programming language sucks. Badly.