Suchen

Definition „Apache Ant“ Was ist Ant?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Apache Ant ist ein Werkzeug in Form einer Java-Bibliothek, die das Bauen und Verteilen von Software automatisieren kann. Das Tool übernimmt dabei zuverlässig zahlreiche Routineaufgaben.

Firma zum Thema

Apache Ant nimmt dem Entwickler kleinteilige und mitunter sehr lästige Aufgaben ab.
Apache Ant nimmt dem Entwickler kleinteilige und mitunter sehr lästige Aufgaben ab.
(Bild: tchompalov - Unsplash.com)

Apache Ant ist ein Programm, mit dem man automatisiert Java-Programme bauen, testen und ausliefern kann. Es ist kostenlos und plattformunabhängig. Ant ermöglicht das Anlegen von Build-Skripten, in denen sich Tätigkeiten wie Kompilieren, Installieren oder Paketieren beschreiben lassen. Anschließend kann man das Skript beliebig oft ausführen, so dass dieses alle darin festgelegten Schritte immer wieder automatisch ausführt.

Apache Ant ist in Anlehnung an Make entstanden und wurde 2000 veröffentlicht; Make ist ein vergleichbares Tool aus dem Unix-Umfeld, das ursprünglich für C-Programme entwickelt wurde. Apache Ant hat seit 2004 einen Nachfolger: Maven, ebenfalls aus dem Hause Apache. Das Tool bietet leicht abweichende Funktionalität wie zum Beispiel ein erleichtertes Management von Abhängigkeiten.

Portables Leichtgewicht

Apache Ant ist im Vergleich zu Maven auch heute noch flexibler und bietet trotz seiner geringen Größe viel Potenzial. Da das System vollständig auf Java basiert, ist es im gleichen Maße plattformunabhängig wie Java selbst. Gleiches gilt für die Build-Files: Auch sie können zwischen verschiedenen Plattformen verschoben werden, weil sie ebenso unabhängig aufgebaut sind. Damit sind mit Apache Ant gebaute Projekte hoch portabel.

Skripting in XML

Die Skripte, mit denen Ant seine Anweisungen zum Bauen und Bereitstellen von Software erhält, werden in XML verfasst. Die strenge Strukturierung, die XML vorgibt, macht Ants Build-Skripte gut nachvollziehbar, kann jedoch bei größeren Projekten etwas unhandlich werden. Das Skript dient dem Build-Prozess als eine Art Anleitung, was in welcher Reihenfolge abgearbeitet werden soll. Die Anweisungen enthalten exakt ein Projekt.

Jedem Projekt lassen sich beliebig viele Targets zuordnen; Targets sind Ziele für die folgenden Tasks. Jedem Target können wiederum mehrere Tasks zugeordnet werden, die schließlich die konkreten Anweisungen für die Verarbeitung enthalten. Zudem gibt es noch Properties, die innerhalb des Skripts ähnlich wie globale Konstanten verwendet werden können.

Targets

Targets kann man als Container betrachten, in denen beliebig viele Tasks gruppiert werden können. Targets können bei Bedarf transitiv voneinander abhängig sein. Damit kann man zum Beispiel erreichen, dass bestimmte Tasks abgeschlossen werden, bevor die Abarbeitung fortschreitet.

Tasks

Intern sind Tasks Klassen, die auf bestimmte Aufgaben rund um Erstellung und Verteilung von Software spezialisiert sind. Sie werden im Kontext eines Targets aufgerufen und können parallel oder sequenziell ausgeführt werden. Je nach Task können mehrere Argumente übergeben werden. Apache Ant wird von Haus aus mit über 150 vorbereiteten Tasks ausgeliefert. Es handelt sich um häufig anfallende Aufgaben, die typisch für jedes Java-Projekt sind. Darüber hinaus gibt es diverse Bibliotheken mit weiteren Funktionen, die ebenfalls herangezogen werden können.

Eigene Tasks entwerfen

Falls die mitgelieferten Tasks den eigenen Anwendungsfall nicht abdecken, können jederzeit eigene Anweisungen formuliert werden. Hierfür muss je Task eine eigene Java-Klasse implementiert werden, die eine von Ants Basisklassen für Tasks erweitert. Man ist also sehr flexibel und muss auch für Spezialfälle nicht auf die Automatisierung verzichten.

Vorteile der Automatisierung mit Ant

Ant nimmt dem Entwickler simple Aufgaben ab, die manuell sehr mühsam sind. Zum einen spart das Tool somit Zeit, die an anderer Stelle besser investiert werden kann. Zum anderen bewahrt es vor Leichtsinnsfehlern, die sich bei langweilig anmutenden Prozessen gerne in erhöhtem Maße einschleichen. Unterm Strich wird der Build-Prozess also effizienter und zuverlässiger.

Für alle Tasks, die häufiger vorkommen, lohnt sich die Automatisierung. Gerade bei Routineaufgaben, die immer wieder mit den gleichen Parametern ausgeführt werden sollen, gestaltet das die Arbeit komfortabler. Das Ausführen von Skripten kann mit modernen Betriebssystemen zudem automatisch angestoßen werden, zum Beispiel als Cron Job auf Unix-Systemen oder als geplante Tasks unter Windows. Somit sind auch Anwendungen wie tägliche Builds mit Ant realisierbar.

(ID:45353235)