Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing
Inhaltsverzeichnis 1 Einführung in Ant Motivationen für die Entwicklung von Building Tools Was ist Ant 2 Ant Einstieg Beispiel: Das Echo Beispiel Einstieg-Beispiel: Aufgabenstellung Einstieg-Beispiel: Aufgabenlösung 3 build.xml Aufbau und häufige Tasks Ant fortgeschrittenes Beispiel: JARs erstellen Build.xml Grundaufbau Häufig verwendete Tasks 4 Ant Konfiguration in Eclipse Grundlegende Konfigurationen von Ant Fehler in Build Files erkennen
Motivationen für die Entwicklung von Building Tools Eclipse kann leicht und gut Projekte builden Fortgeschrittene und kombinierte Build-Aufgaben können mit Eclipse schwer oder sogar gar nicht bewältigt werden. Z.B.: 1 Kompilieren UND kopieren von Dateien in beliebigen Ordner 2 JAR Files UND Javadoc erstellen 3 Neu Ordner erstellen UND alte Builds löschen 4 beliebige Kombinationen von Build-Aufgaben Lösung: Einsetzen von einem Build Tool in Eclipse wie z.b. Ant
Was ist Ant? Was ist Ant? Ant ist ein Open Source Java-basiertes Build Tool zum automatisierten Erzeugen von ausführbaren Programmen aus dem Quellcode sowie zum Bewältigen von komplexen und anspruchsvollen Build-Aufgaben (Kombinationen) Ant wurde von Apache entwickelt: http://ant.apache.org/ Ant Kommandos können in einer Console ausgeführt werden Ant ist in Eclipse integriert.
Einstieg-Beispiel: Aufgabenstellung Dies ist ein sehr einfaches Beispiel zum Einstieg in Ant Erzeuge ein neues Java-Projekt: EchoBeispiel Erzeuge eine Klasse, die Hallo Teilnehmer ausgibt Ant liefert auch die Nachricht: Ant grüßt Euch Teilnehmer!
Einstieg-Beispiel: Aufgabenlösung Erzeuge EchoBeispiel Projekt sowie eine Testklasse drin. Projekt(RM) New File: build.xml Finish Die XML Datei enthält Tags, die von Ant interpretiert werden build.xml teilt also Ant mit, wie Ant das Projekt builden soll Folgendes Code bitte in build.xml eintippen und danach Rechter Mausklick Run AS 1 Ant Build <?xml version = "1.0" encoding= "UTF-8"?> <project name="echobeispiel" default="main Build"> <target name = "Main Build"> <echo message = "Ant grüßt Euch Teilnehmer" /> </target> </project>
Ant fortgeschrittenes Beispiel: Aufgabenstellung Erstelle ein Projekt MyMath Programmiere zwei Klassen: Fibonacci, Factorial Erzeuge build.xml und builde das Projekt mit Ant Ant muss Code kompilieren, JARs und Javadoc erstellen.
Lösung Ant fortgeschrittenes Beispiel <?xml version = "1.0" encoding= "UTF-8"?> <project name="mymath" default="main Build" basedir="."> <!-- set global properties for this build --> <prperty name="bin" location="bin"/> <prperty name="src" location="src"/> <prperty name="jardir" location="${bin}/lib"/> <prperty name="jarfile" location="${jardir}/mymath.jar"/> <prperty name="build.comipler" value="org.eclipse.jdt.core.jdtcompileradapter"/> <!--Main target: initialize, compile and build JARs --> <target name="main Build" depends="initialize, Compile, Jar"> <echo message = "Ant wird ausgeführt...!"/> </target>
Aufgabenlösung: Initialize Task <target name="initialize"> <!-- Create the time stamp --> <tstamp/> <!-- Delete everything in output${bin} and ${jardir} --> <delete dir="${bin}"/> <delete dir="${jardir}"/> <!-- Recreate everything in output${bin} and ${jardir} --> <mkdir dir="${bin}"/> <mkdir dir="${jardir}"/> </target>
Aufgabenlösung: Compile Task <target name="comiple" depends="initialize"> <!-- Compile the java code from ${src} into ${bin} --> <javac srddir="${src}"/> <destdir ="${jardir}"/> </javac> </target>
Aufgabenlösung: JAR Task <target name="jar" depends="initialize, Compile"> <!-- Create the distribution directory --> <jar destfile="${jarfile}" basedir="${bin}"/> </target> </project>
Build.xml Grundaufbau XML Version und Zeichensatz <?xml version = "1.0" encoding= "UTF-8"?> Wurzeltag: Projekttag <project> <project name="name of project" default="build Main" basedir="."> Beschreibungstag <description> in Projekttag <description> Projekt Build File </description> Globale Properties <property> z.b. Verzeichnis definieren <property name="src" location="src"/> Target Tag <target> für Tasks <target name="compile" depends="init" description="compile the source " >
Häufig verwendete Task in Ant Kommando javac mkdir copy delete junit javadoc move exec zip cvs mail replace Task kompiliert Quellcode Erstellt Verzeichnisse Kopiert Dateien Löscht Dateien oder Verzeichnisse führt automatisierte JUnit-Test durch erstellt Javadoc Bennnt Dateien oder Verzeichnisse um Führt ein System-Programm aus komprimiert Dateien zum Durchführen von CVS-Operationen versendet automatisch e-mails ersetzt Text in Dateien
Grundlegende Konfigurationen von Ant
Fehler in Build XML erkennen