<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Apache_Ant</id>
	<title>Apache Ant - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Apache_Ant"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Apache_Ant&amp;action=history"/>
	<updated>2026-05-30T03:09:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Apache_Ant&amp;diff=72799&amp;oldid=prev</id>
		<title>imported&gt;Trustable: Kleinigkeiten verbessert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Apache_Ant&amp;diff=72799&amp;oldid=prev"/>
		<updated>2026-01-10T21:47:29Z</updated>

		<summary type="html">&lt;p&gt;Kleinigkeiten verbessert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
| Name                              = &amp;lt;!-- Nur falls abweichend vom Artikelnamen --&amp;gt;&lt;br /&gt;
| Logo                              = [[Datei:Apache-Ant-logo.svg|200px|Apache Ant Logo – Entworfen von Nick King]]&lt;br /&gt;
| Screenshot                        = &amp;lt;!-- Bildschirmfoto --&amp;gt;&lt;br /&gt;
| Beschreibung                      = &amp;lt;!-- Beschreibung des Bildschirmfotos --&amp;gt;&lt;br /&gt;
| Maintainer                        =&lt;br /&gt;
| Hersteller                        = [[Apache Software Foundation]]&lt;br /&gt;
| Erscheinungsjahr                  = 19. Juli 2000&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(Version 1.1)&amp;lt;/small&amp;gt;&lt;br /&gt;
| AktuelleVersion                   = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| AktuelleVersionFreigabeDatum      = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| AktuelleVorabVersion              = &lt;br /&gt;
| AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
| Betriebssystem                    = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| Programmiersprache                = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| Kategorie                         = [[Erstellungsprozess|Build-Management]]-Tool&lt;br /&gt;
| Lizenz                            = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| Deutsch                           = &lt;br /&gt;
| Website                           = [https://ant.apache.org/ ant.apache.org]&lt;br /&gt;
| Sonstiges                         =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Apache Ant&amp;#039;&amp;#039;&amp;#039; ({{enS}} für &amp;#039;&amp;#039;[[Ameise]]&amp;#039;&amp;#039;) ist ein in [[Java (Programmiersprache)|Java]] geschriebenes Programm zum [[Erstellungsprozess|automatisierten Erzeugen]] von ausführbaren [[Computerprogramm]]en aus [[Quelltext]]en.&lt;br /&gt;
&lt;br /&gt;
Es erfüllt den gleichen Zweck wie das sehr verbreitete Programm [[make]], nämlich die automatisierte Erstellung von installierbaren Software-Paketen aus existierendem Quelltext, [[Programmbibliothek|Bibliotheken]] und sonstigen Dateien. Ant ist [[Open Source]], startete als Teil des [[Jakarta-Projekt]]s und ist nun ein [[Apache Software Foundation|Apache]]-Top-Level-Projekt. Ant ist ein [[Apronym]]&amp;lt;!--Ein Apronym ist ein besonderes Akronym (Siehe Link). Stehenlassen!--&amp;gt; und steht für „Another Neat Tool“ (englisch für „Noch ein hübsches Werkzeug“). Entwickelt wurde die erste Version von [[James Duncan Davidson]], der [[1999]] ein Werkzeug wie make für Java benötigte, während er die erste [[Jakarta EE|Jakarta-EE]]-Referenz-Implementierung entwickelte. Davidson gilt außerdem als Vater von [[Jakarta Tomcat]]. Für ihn steht der Name „Ant“ dafür, dass es als kleines Programm, genau wie die kleinen Ameisen, Großes leisten kann.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Im Unterschied zu &amp;#039;&amp;#039;[[make]]&amp;#039;&amp;#039; ist Ant in [[Java (Programmiersprache)|Java]] implementiert und benötigt somit zur Ausführung eine [[Java-Laufzeitumgebung]] (JRE).&lt;br /&gt;
&lt;br /&gt;
=== Begriffe ===&lt;br /&gt;
Gesteuert wird Ant durch eine [[Extensible Markup Language|XML]]-Datei, die sogenannte &amp;#039;&amp;#039;Build-Datei&amp;#039;&amp;#039;. Sie heißt standardmäßig &amp;lt;code&amp;gt;build.xml&amp;lt;/code&amp;gt;. In der Build-Datei wird ein &amp;#039;&amp;#039;project&amp;#039;&amp;#039; (deutsch „Projekt“) definiert. Dies ist das Wurzelelement der XML-Datei. Zu einem Software-Projekt sollte genau eine Build-Datei und damit genau ein Ant-Project gehören.&lt;br /&gt;
&lt;br /&gt;
Das Ant-Project enthält &amp;#039;&amp;#039;Targets&amp;#039;&amp;#039; (deutsch „Ziele“). Diese sind vergleichbar mit Funktionen in [[Programmiersprache]]n und können von außen, zum Beispiel vom Entwickler über die [[Kommandozeileninterpreter|Kommandozeile]] oder die [[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]], gezielt aufgerufen werden. Die Targets sollten in ihrer Gesamtheit alle bei der Arbeit mit einem Software-Projekt anfallenden Tätigkeiten abdecken. Zwischen den &amp;#039;&amp;#039;Targets&amp;#039;&amp;#039; können Abhängigkeiten definiert werden, entsprechend den Anforderungen an die Abhängigkeiten. Beim Aufrufen eines Targets löst Ant diese Abhängigkeiten auf und arbeitet die Targets entsprechend ab. Wenn man ein Target definiert hat, welches direkt oder indirekt Abhängigkeiten zu anderen Targets hat, so genügt es, dieses aufzurufen und Ant führt dann alle notwendigen Arbeitsschritte in der richtigen Reihenfolge aus.&lt;br /&gt;
&lt;br /&gt;
Im Project kann ein Target als &amp;#039;&amp;#039;Default-Target&amp;#039;&amp;#039; angegeben werden. Dies ist normalerweise das Target, das aus dem Rohzustand oder einem Zwischenzustand des Software-Projektes die jeweils nötigen Schritte durchführt, um einen lauffähigen Zustand herzustellen.&lt;br /&gt;
&lt;br /&gt;
Ein Target besteht aus Aufrufen von &amp;#039;&amp;#039;Tasks&amp;#039;&amp;#039; (deutsch „Aufgaben“). Sie sind vergleichbar mit Befehlen in Programmiersprachen.&lt;br /&gt;
&lt;br /&gt;
=== Syntax und Schnittstellen ===&lt;br /&gt;
Da es sich bei der &amp;#039;&amp;#039;Build-Datei&amp;#039;&amp;#039; um eine XML-Datei handelt, hängt ihre Bedeutung nicht von [[Tabulatorzeichen]], [[Leerzeichen]] oder Pfadtrennzeichen ab, die auf unterschiedlichen [[Betriebssystem]]en unterschiedlich definiert sind. Dies ist insbesondere eine Verbesserung gegenüber den von make benutzten [[Makefile]]s.&lt;br /&gt;
&lt;br /&gt;
Ant ist ein offenes System mit definierten Schnittstellen, wodurch es z.&amp;amp;nbsp;B. durch selbst erstellte Tasks beliebig erweitert werden kann. Viele Java-Werkzeuge unterstützen Ant. Außerdem lässt es sich auch in eigene Anwendungen –&amp;amp;nbsp;z.&amp;amp;nbsp;B. Installationsprogramme&amp;amp;nbsp;– einbinden, um verschiedenste meist [[Stapelverarbeitung|Batch]]-artige Aufgaben zu übernehmen.&lt;br /&gt;
&lt;br /&gt;
== Häufig verwendete Tasks ==&lt;br /&gt;
Ant enthält über 150 Tasks, wobei man auch eigene Tasks in Java selbst programmieren kann. Diese Liste enthält einige eingebaute (englisch &amp;#039;&amp;#039;built-in&amp;#039;&amp;#039;) Tasks von Ant.&lt;br /&gt;
* &amp;#039;&amp;#039;javac&amp;#039;&amp;#039; zum [[Kompilieren]] von Quellcode.&lt;br /&gt;
* &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; zum Kopieren von [[Datei]]en.&lt;br /&gt;
* &amp;#039;&amp;#039;delete&amp;#039;&amp;#039; zum Löschen von Dateien oder [[Verzeichnis]]sen.&lt;br /&gt;
* &amp;#039;&amp;#039;mkdir&amp;#039;&amp;#039; zum Erstellen von [[Verzeichnis]]sen.&lt;br /&gt;
* &amp;#039;&amp;#039;junit&amp;#039;&amp;#039; für automatisierte ([[JUnit]]-)Tests.&lt;br /&gt;
* &amp;#039;&amp;#039;move&amp;#039;&amp;#039; zum Umbenennen von Dateien oder Verzeichnissen.&lt;br /&gt;
* &amp;#039;&amp;#039;exec&amp;#039;&amp;#039; zum Ausführen von System-Programmen. Achtung: Bei Benutzung dieses Tasks begibt man sich häufig in die Abhängigkeit eines Betriebssystems!&lt;br /&gt;
* &amp;#039;&amp;#039;zip&amp;#039;&amp;#039; zum [[ZIP-Dateiformat|Zippen]], also zum Komprimieren von Dateien.&lt;br /&gt;
* &amp;#039;&amp;#039;cvs&amp;#039;&amp;#039; zum Durchführen von [[Concurrent Versions System|CVS]]-Operationen.&lt;br /&gt;
* &amp;#039;&amp;#039;mail&amp;#039;&amp;#039; zum Versenden von [[E-Mail]]s.&lt;br /&gt;
* &amp;#039;&amp;#039;replace&amp;#039;&amp;#039; zum Ersetzen von Text in Dateien.&lt;br /&gt;
Flexibel einsetzbar ist auch der vordefinierte Task &amp;#039;&amp;#039;Xslt&amp;#039;&amp;#039; zur Transformation einer XML-Datei in z.&amp;amp;nbsp;B. eine HTML-Datei unter Verwendung einer gegebenen [[XSL Transformation|XSLT]]-Datei.&lt;br /&gt;
&lt;br /&gt;
== Beispiele für Targets ==&lt;br /&gt;
Während Tasks als Java-Klassen implementiert sind, werden Targets in XML definiert und rufen Tasks auf. Es können auch eigene Tasks in Form von Java-Klassen erstellt werden.&lt;br /&gt;
&lt;br /&gt;
Der folgende Ausschnitt aus einer typischen Build-Datei zeigt zwei Targets: &amp;#039;&amp;#039;build&amp;#039;&amp;#039; erzeugt ein Verzeichnis und kompiliert eine Menge von Java-Klassen dort hinein. Es hängt von einem anderen Target &amp;#039;&amp;#039;clean&amp;#039;&amp;#039; ab, das zuvor einige Verzeichnisse und Dateien löscht, um Überbleibsel früherer Aufrufe zu beseitigen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;project name=&amp;quot;Demo&amp;quot; basedir=&amp;quot;.&amp;quot; default=&amp;quot;build&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;property name=&amp;quot;build.classes&amp;quot; value=&amp;quot;bin&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;property name=&amp;quot;build.lib&amp;quot; value=&amp;quot;lib&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;property name=&amp;quot;java.dir&amp;quot; value=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;property name=&amp;quot;name&amp;quot; value=&amp;quot;Wikipedia-Demo&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;property name=&amp;quot;manifest&amp;quot; value=&amp;quot;manifest&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;path id=&amp;quot;classpath&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;pathelement location=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Anwendung bauen  --&amp;gt;&lt;br /&gt;
  &amp;lt;target name=&amp;quot;build&amp;quot; depends=&amp;quot;clean&amp;quot; description=&amp;quot;Baut die komplette Anwendung&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Verzeichnis anlegen --&amp;gt;&lt;br /&gt;
    &amp;lt;mkdir dir=&amp;quot;${build.classes}&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Quelltext kompilieren --&amp;gt;&lt;br /&gt;
    &amp;lt;javac srcdir=&amp;quot;${java.dir}&amp;quot;&lt;br /&gt;
           destdir=&amp;quot;${build.classes}&amp;quot;&lt;br /&gt;
           debug=&amp;quot;false&amp;quot;&lt;br /&gt;
           deprecation=&amp;quot;true&amp;quot;&lt;br /&gt;
           optimize=&amp;quot;true&amp;quot; &amp;gt;&lt;br /&gt;
      &amp;lt;classpath refid=&amp;quot;classpath&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/javac&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Kopiert notwendige Dateien --&amp;gt;&lt;br /&gt;
    &amp;lt;copy todir=&amp;quot;${build.classes}&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;fileset dir=&amp;quot;${java.dir}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;include name=&amp;quot;**/*.properties&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;include name=&amp;quot;**/*.gif&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/fileset&amp;gt;&lt;br /&gt;
    &amp;lt;/copy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Baut die JAR-Datei --&amp;gt;&lt;br /&gt;
    &amp;lt;jar jarfile=&amp;quot;${build.lib}/${name}.jar&amp;quot; manifest=&amp;quot;${manifest}&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;fileset dir=&amp;quot;${build.classes}&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jar&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Aufräumen  --&amp;gt;&lt;br /&gt;
  &amp;lt;target name=&amp;quot;clean&amp;quot; description=&amp;quot;Räumt die temporär angelegten Dateien weg&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Löscht Dateien --&amp;gt;&lt;br /&gt;
    &amp;lt;delete dir=&amp;quot;${build.dir}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;delete dir=&amp;quot;${dist.base}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;delete dir=&amp;quot;${defaultdist.dir}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;delete&amp;gt;&lt;br /&gt;
      &amp;lt;fileset dir=&amp;quot;.&amp;quot; includes=&amp;quot;**/*~&amp;quot; defaultexcludes=&amp;quot;no&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/delete&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die mit einem Dollar-Zeichen ($) versehenen Bereiche stellen &amp;#039;&amp;#039;Properties&amp;#039;&amp;#039; dar. Es handelt sich dabei um vorher im Projekt oder in anderen &amp;#039;&amp;#039;Targets&amp;#039;&amp;#039; definierte Variablen.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Apache Maven]] – konkurrierendes Build-Management-Tool für Java&lt;br /&gt;
* [[Apache Ivy]] – Subprojekt von Apache Ant zur Verwaltung und Einbindung von Abhängigkeiten&lt;br /&gt;
* [[Gradle]] – weiteres Build-Management-Tool für Java&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Bernd Matzke: &amp;#039;&amp;#039;Ant&amp;#039;&amp;#039;. Addison-Wesley, ISBN 3-8273-2066-6&lt;br /&gt;
* Erik Hatcher, Steve Loughran: &amp;#039;&amp;#039;Java-Entwicklung mit Ant&amp;#039;&amp;#039;. Mitp-Verlag 2004, ISBN 3-8266-1409-7&lt;br /&gt;
* Stefan Edlich: &amp;#039;&amp;#039;Ant kurz &amp;amp; gut&amp;#039;&amp;#039;. O’Reilly 2006, ISBN 3-89721-241-2&lt;br /&gt;
* Jessy Tilly, Eric M. Burke: &amp;#039;&amp;#039;Ant, The Definitive Guide&amp;#039;&amp;#039;. O’Reilly 2002, ISBN 0-596-00184-3&lt;br /&gt;
* Steve Loughran, Eric Hatcher: &amp;#039;&amp;#039;Ant in Action, Second Edition of Java Development with Ant&amp;#039;&amp;#039;. Manning, ISBN 1-932394-80-X&lt;br /&gt;
* Gunther Popp: &amp;#039;&amp;#039;Projektautomatisierung mit Ant&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Konfigurationsmanagement&amp;#039;&amp;#039;. dpunkt-Verlag, ISBN 978-3-89864-487-7&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://ant.apache.org/ Offizielle Website]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4689797-5|LCCN=n/2002/66009|VIAF=181177554}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Apache-Projekt]]&lt;br /&gt;
[[Kategorie:Java-Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Java-Programm]]&lt;br /&gt;
[[Kategorie:Java-Bibliothek]]&lt;br /&gt;
[[Kategorie:Build-Management]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Trustable</name></author>
	</entry>
</feed>