Apache Ant
Apache Ant is een computerprogramma voor het automatiseren van het bouwproces van software. Het is vergelijkbaar met make, met het verschil dat Ant in Java is geschreven en zich ook voornamelijk richt op het bouwen van Javaprogramma's.

Werking 
Ant probeert aan de hand van een beschrijving (de build file) een doel te bereiken. In de build file staat beschreven welke taken moeten worden uitgevoerd om een doel te bereiken. Het kan zo zijn dat het kunnen bereiken van een doel alleen kan als er eerst andere doelen zijn bereikt. Deze afhankelijkheden worden ook in de build file beschreven.

Ant gebruikt de build-file om te bepalen welke taken in welke volgorde moeten worden uitgevoerd en zorgt automatisch voor het juist afhandelen van de afhankelijkheden tussen doelen.

Voorbeeld 
Hier volgt een voorbeeld van een mogelijke Ant build file voor een eenvoudige "Hello, world" applicatie. Er worden drie targets (doelen) gedefinieerd: clean, compile en jar, elk voorzien van een omschrijving. Het jar target is afhankelijk van het compile target. Ant zal daarom eerst het compile target uitvoeren voordat het jar target kan worden uitgevoerd.

Binnen een target zijn de taken opgenomen die Ant moet uitvoeren om dat doel te bereiken. Om het compile target te halen moet Ant eerst een directory maken met de naam classes en daarna de Java compiler aanroepen.

 <?xml version="1.0"?>
 <project name="Hello" default="compile">
     <target name="clean" description="verwijder tijdelijke files">
         <delete dir="classes"/>
     </target>
     <target name="compile"
      description="compileer de Java sources naar .class files">
         <mkdir dir="classes"/>
         <javac srcdir="." destdir="classes"/>
     </target>
     <target name="jar" depends="compile"
      description="Maak een Jar file voor de applicatie">
         <tstamp prefix="builddate"/>
         <jar destfile="hello.jar">
             <fileset dir="classes" includes="**/*.class"/>
             <manifest>
                 <attribute name="Main-Class" value="HelloProgram"/>
                 <attribute name="Implementation-Version" value="${builddate.DSTAMP}"/>
             </manifest>
         </jar>
     </target>
 </project>

Door het uitvoeren van

 ant jar

zal het jar target worden uitgevoerd, nadat Ant automatisch het compile target heeft uitgevoerd.

 ant 

zorgt voor het uitvoeren van het default target van het project, in dit geval compile.

Portabiliteit
Een van de doelstellingen van Ant is het oplossen van de portabiliteitsproblemen van make. In een makefile worden over het algemeen veel shellscripts aangeroepen die specifiek zijn voor het platform dat gebruikt wordt om de software te bouwen. Het verwijderen van een directory zou met make bijvoorbeeld

 rm -rf classes/

kunnen zijn. Dit is een specifiek UNIX-commando dat niet op een Windows-machine zal werken.

Met Ant wordt een directory verwijderd met bijvoorbeeld

 

Hiermee wordt een platformonafhankelijke verwijdering van de directory bereikt. Ant maakt het mogelijk dat binnen een Java project verschillende platforms kunnen worden gebruikt zonder portabiliteitsproblemen met het bouwproces.

Sterke punten 
Met Ant is het mogelijk om geheel geautomatiseerd software te bouwen, ook in projecten waar veel programmeurs bij betrokken zijn. Ant kent tasks voor het aanroepen van version control systemen voor het ophalen van broncode, taken voor het uitvoeren van unit testen met bijvoorbeeld JUnit, taken voor het gebruiken van FTP, mogelijkheden voor het per e-mail versturen van het resultaat van het bouwproces en nog veel meer.

Veel Java gereedschappen worden geleverd met een Ant-task, zodat het gereedschap eenvoudig vanuit Ant kan worden aangeroepen.

Zwakke punten 
Het gebruik van XML als formaat voor de beschrijving van het bouwproces kan zorgen voor zeer grote build files, mede omdat Ant-tasks vaak gedetailleerd ingesteld kunnen worden met veel parameters.

Geschiedenis 
Ant is bedacht door James Duncan Davidson toen hij een product van Sun open source maakte. Dit product werd later Apache Tomcat. De vroege versie van Ant werd gebruikt om Tomcat te bouwen op Solaris. Ant werd officieel op 19 juli 2000 uitgebracht als versie 1.1.

Externe link 
 Projectpagina

Software geschreven in Java
Apache Software Foundation project
Programmeerhulpmiddel
Opensourcesoftware en vrije software