Nula nebo více elementů task - úkol; spustitelná část kódu. Z build-souboru se vyvolává
<task atribut1="hodnota1" atribut2="hodnota2"... >
Buď můžeme využít množství zabudovaných tasků, například:
copy - kopíruje soubor či adresář na určené místo (podelement mapper v třetím příkladu všem souborům přidá příponu .bak):
<copy file="soubor.txt" tofile="kopie.txt"/>
<copy file="soubor.txt" todir="../novyadresar"/>
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<mapper type="glob" from="*" to="*.bak"/>
</copy>
delete - smaže soubor či adresář.
<delete file="soubor.txt"/>
<delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
echo - vypíše hlášku (standardně na standardní výstup). Může být zadán atribut file (když má zapisovat do souboru), level (úroveň logování).
<echo message="Nazdar!"/>
<echo>Nazdar!</echo>
mkdir - založí zadaný adresář.
<mkdir dir="soubory"/>
javac - zkompiluje do bytekódu. Například následující kód zkompiluje všechny .java soubory z adresáře daného vlastností (property), připojí k tomu balíčky z určených adresářů (a určené z nich zase nepřidá), nastaví cestu ke třídě na JAR a vypisuje debug-zprávy.
<javac srcdir="${src}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"/>
jar - vytvoří ze skupiny souborů JAR archiv.
<jar destfile="${dist}/lib/app.jar" basedir="${build}/classes"/>
a mnoho dalších, mimoto lze využít další již vytvořené. Ant nám také dovoluje vytvořit si další tasky sami.