И Ant, и Maven знают, как компилировать только те файлы, которые изменились или зависят от файлов, которые изменились. В случае с Maven это происходит по умолчанию. С Ant вы делаете это, используя задачу Depend .
Вы должны знать об ограничениях этих механизмов. В частности, задача Ant Depend не обнаруживает определенные виды зависимостей, которые не указаны явно в формате файла класса Java.