alternatives to ant: gant, gradle and pjmake

We use ant, a lot, but I’m getting progressively fed up with it so I’m looking for alternatives.

Ant has several well-known problems, including:

  • The use of XML makes the syntax very wordy and hard to read
  • Things which should be simple such as refactoring common “code” or transforming filenames are more difficult than they should be
  • The disjoint between ant xml and custom tasks is very sharp; custom tasks are second-clas citizens
  • The built-in tasks are not designed for extendability

I have recently investigated three alternatives:
gant, gradle and pjmake. Gant and gradle both aim to replace ant with a build system scripted in interpreted Groovy. Pjmake aims to replace ant with a build system scripted in compiled java.