Das Build-Tool ANT ETIS SS04 Gliederung • Motivation • Build-Datei build.xml • Bestandteile build.xml – Properties • Zusammenfassung ant ETIS SS04 2 Motivation ANT (I) • open source-Projekt (bereits Version 1.6.1) – vom Jakarta zum Apache Top-Level-Projekt (http://ant.apache.org) • Build-Tool ähnlich make, aber – plattformunabhängig – XML-basiert – Erweiterungen durch Java-Klassen • Aufgaben, z.B.: – Kompilieren, – Dokumentationen erstellen, – Archive ausliefern ant ETIS SS04 3 Motivation ANT (II) • IDEs ermöglichen ebenfalls komplexe Entwicklungsaufgaben, aber interaktiv, nicht automatisiert wie BuildTools – Komplizierte Dateioperationen leichter formulierbar – Stapelbetrieb problemlos realisierbar - z.B. für Techniken wie automatisiertes Testen oder fortlaufende Integration • Ant: Quasistandard im Java-Bereich – Ant nicht nur von Kommandozeile auch in IDEs nutzbar – in nahezu jede IDE integrierbar ant ETIS SS04 4 Die Build-Datei build.xml • In Build-Datei i.d.R. build.xml werden Ant-Anweisungen formuliert <project ...> <target> Task ... </target> <target> Task ... </target> </project> ant project target Task Task target Task Task ETIS SS04 5 Bestandteile build.xml (I) • Project – jedes Build-File enthält ein Project – dieses enthält ein oder mehrere Targets (ein default Target) • Target – ist eine Reihe von Tasks – kein Target beim Start von Ant angegeben defaultTarget gestartet – Target können voneinander abhängen <target name="D" depends="C,B,A"/> ant ETIS SS04 6 Bestandteile build.xml (II) • Task – Stück Code, das ausgeführt werden kann – z.B. copy, delete, mkdir, java, javac, junit, jar, javadoc <copy file=“myfile.txt“ tofile=“mycopy.txt“/> <copy todir=“../dest/dir“> <fileset dir=“src_dir“> <exclude name=“**/*.java“/> </fileset> </copy> • Entwicklung eigener Tasks möglich ant ETIS SS04 7 Properties • Buildfiles arbeiten nur mit Strings als „Variablentypen“ • jedoch möglich: Definition von Properties - Verwendung ähnlich Makros, z.B.: <property name=“jar.dest“ value=“lib“ /> <mkdir=“${jar.dest}“/> • Auslagerung der Properties in Dateien möglich, z.B. <property file=“build.properties“/> • einige Properties sind unter Ant vordefiniert, z.B. java.version, basedir ant ETIS SS04 8 Zusammenfassung • Open source apache-Projekt • Quasi-Standard für Build-Tools unter Java – Kompilieren, Archive, Dokumentation erzeugen, JunitTests ausführen... – Konsistenz /Wiederholbarkeit im Projekt • In viele IDEs integriert • Unterstützung durch Editoren (z.B. in eclipse integriert: Planty) • Xml-basiert, Plattform-unabhängig ant ETIS SS04 9 Literatur • Backschat, M., Edlich, J2EE-Entwicklung mit OpenSource-Tools, Spektrum Akademischer Verlag, München, 2004 • http://ant.apache.org/manual/ • http://www.galileocomputing.de/openbook/javainsel3/jav ainsel_250009.htm • http://de.wikipedia.org/wiki/Ant ant ETIS SS04 10