I always wondered why tools like Phing, Ant and the likes are so popular... most build configurations I've seen so far contain mostly exec statements, so essentially you're writing a shell script but wrap your commands in XML.

Is there a genuine advantage over writing plain shell scripts that I am missing?