ApacheAnt

Apache Ant Java-Buildtool #

Ant ist ein Buildtool, mit dem man anhand einer Konfigurationsdatei (build.xml) ein Java-Projekt komplett verwalten und zusammenbauen kann. Es ist vergleichbar mit GNU-Make. Während Makefiles jedoch zumeist sehr viel Gebrauch von externen Programmen (dem sprichwörtlichen Unix-Baukasten) machen, sind Ant-Skripte zumeist komplett plattformunabhängig. Dazu gibt es sogenannte Tasks, die bestimmte Aufgaben erledigen. Diese Tasks sind wiederum selber in Java geschrieben.

Die Homepage findet sich unter http://ant.apache.org.

Da die Dokumentation relativ gut ist, soll diese Seite hier nur eine Sammlung von Ideen und Links zu besonderen Tasks sein.

Gibt es das Super-Buildskript? #

Nachdem ich jetzt einige Zeit mit Ant und mehreren verschiedenen Projekten zugebracht habe, haben sich meine entsprechenden build-Skripts immer mehr angepasst. Im Grunde genommen will man ja doch immer wieder das gleiche. Deshalb habe ich begonnen, ein ultimatives Super-Buildskript für alle meine Projekte zu schreiben. Hier sammle ich Anregungen und Ideen dazu: -- ThomasBayen

Meine Lösung #

Ich habe mein Skript in den letzten zwei Wochen (Am Rosenmontag ist es gebohoren...!) komplett durch den Wolf gedreht und es in Templates zerlegt. Dazu habe ich recht ansehliche Webseiten-Templates geschrieben. Dieses Projekt habe ich FlyingAnt genannt (weil es Ant Flügel verleiht - wenn alles läuft). Nun habe ich das Ding so weit, daß es sich selbst verpackt und ins Netz stellt und das gleiche mit JEmpire macht. :-) Seine Homepage ist http://flyingant.javaproject.de und ich bitte wie immer um Feedback und Diskussionen hier auf der Seite. :-)

Tasksammlung #

Auf der Ant-Homepage gibt es eine Sammlung mit Tasks von Drittanbietern. Diese ist jedoch erstens jetzt schon viel zu lang, um übersichtlich zu sein und zweitens unvollständig. Deshalb können wir hier für uns interessante Tasks sammeln:

Erlaubt den Zugriff auf die Eclipse-Konfiguration, um deren Projekt-Einstellungen mitzubenutzen
Schöne Sammlung von Tasks, die man immer schon mal brauchen konnte (endlich ein IF!)
Erzeugen von JavaWebStart-Dateien
    <copy
        todir="docs2"
        encoding="iso-8859-1"
        outputencoding="utf-8"
    >
        <fileset dir="docs"/>
    </copy>
Ansteuerung eines Subversion-Repositories. Dies ist die mächtigste und am schönsten implementierte Lösung, mit der man z. B. auch Daten lesen und in Ant-Properties einfügen kann. (für einfache Aufgaben sollte auch http://ant.apache.org/antlibs/svn/index.html gehen). Was dort übrigens nicht richtig dokumentiert ist, ist die taskdef-Zeile:
  <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask"/>

Ant-update in Eclipse #

In Eclipse ist ja bekanntlich eine Ant-Unterstützung fest eingebaut. Dies ist bei Eclipse 3.2 jedoch Ant 6.5. Ich möchte aber Ant 7.0 benutzen (weil dieses JUnit 4 unterstützt). Hierzu kann man entweder in der einzelnen "Run Configuration", d.h. auf der Seite, die mit dem Menüpunkt "External Tools..." aufgeht, im Classpath den Eintrag "Ant Home (Default)" löschen und stattdessen alle Bibliotheken aus dem Ant-Binärpaket (im Verzeichis lib) einbinden.

Eigentlich spricht nichts dagegen, diese Änderung global in den Preferences vorzunehmen. Wer sich das traut, kann in Ant/Runtime rechts mit dem Button "Ant Home" das Verzeichnis auswählen, in das er das Binärpaket ausgepackt hat. -- ThomasBayen am 13.03.2007

Ant Scripting mit Groovy #

Habt Ihr Euch mal Gant angesehen? Das ermöglicht das Skripting von ant mit Groovy.

Vorteil
Man wird die sperrige XML-Syntax los und gewinnt die mächtigen Konstrukte einer Skript-Sprache
Nachteil
Schon wieder eine neue Sprache!

Das wäre sicher ein Werkzeug, mit dem man das gesuchte universelle Build-Skript schreiben kann.

Gant hat noch den zusätzlichen Nachteil, daß es Ant nicht in allen Fällen ersetzen kann, also z.B. werden Ant-Targets in NetBeans standardmäßig verwendet, um dort Projektaufgaben zu erledigen. Das könnte man nicht ersetzen. Der Gedanke der AntGroovyIntegration ist jedoch dennoch nicht verkehrt, weil man Groovy sehr gut in Ant-Skripten integrieren kann.


Tags:  Java