Apache Ant

Apache Ant ist ein freies Kommandozeilen-Programm zum automatisierten Erzeugen von ausführbaren Computerprogrammen aus Quellcode. Es wird von der Apache Foundation entwickelt und hauptsächlich zum Erzeugen von Java-Anwendungen eingesetzt. Es kann jedoch auch für C oder C++ verwendet werden. Grundsätzlich kann Ant für alle Arten von Prozessen verwendet werden, welche mittels Aufgaben und Zielen beschrieben werden kann.

Dokumentation und Literatur

Einfaches Beispiel

Das folgende Beispiel1) zeigt die Verwendung von Ant für eine Java-Anwendung. Dabei existieren zwei Targets:

  • build erzeugt ein Verzeichnis und kompiliert einige Java-Klassen dort hinein
  • clean räumt vorgängige Kompiliervorgänge wieder auf, in dem es einige Verzeichnisse und Dateien löscht.
build.xml
<?xml version="1.0"?>
  <project name="Demo" basedir="." default="build">
    <property name="build.classes" value="bin" />
    <property name="build.lib" value="lib" />
    <property name="java.dir" value="." />
    <property name="name" value="Wikipedia-Demo" />
    <property name="manifest" value="manifest" />
 
    <path id="classpath">
      <pathelement location="." />
    </path>
 
    <!-- Anwendung bauen  -->
    <target name="build" depends="clean" description="Baut die komplette Anwendung">
      <!-- Verzeichis anlegen -->
      <mkdir dir="${build.classes}"/>
 
      <!-- Quelltext kompilieren -->
      <javac srcdir="${java.dir}"
             destdir="${build.classes}"
             debug="false"
             deprecation="true"
             optimize="true" >
        <classpath refid="classpath" />
      </javac>
 
      <!-- Kopiert notwendige Dateien -->
      <copy todir="${build.classes}">
        <fileset dir="${java.dir}">
          <include name="**/*.properties" />
          <include name="**/*.gif" />
        </fileset>
      </copy>
 
      <!-- Baut die JAR-Datei -->
      <jar jarfile="${build.lib}/${name}.jar" manifest="${manifest}">
        <fileset dir="${build.classes}"/>
      </jar>
    </target>
 
    <!-- Aufräumen  -->
    <target name="clean" description="Räumt die temporär angelegten Dateien weg">
      <!-- Löscht Dateien -->
      <delete dir="${build.dir}" />
      <delete dir="${dist.base}" />
      <delete dir="${defaultdist.dir}" />
      <delete> 
        <fileset dir="." includes="**/*~" defaultexcludes="no"/>
      </delete>
    </target>
  </project>
1)
Basierend auf dem Beispiel aus dem Wikipedia-Artikel zu Ant