Wintersemester 2005/2006 FernUniversität Hagen
Fachbereich Informatik
 Kurs 1794 - Software Engineering II - Methodische Entwicklung von Benutzungsschnittstellen für Webapplikationen
 Lehrgebiet Software Engineering, Prof. Dr. Six

Projektstruktur

In Kurseinheit 1 wurde die Verzeichnisstruktur einer Webapplikation vorgestellt. Ein Web Container (z.B. Tomcat) erwartet diese Verzeichnisstruktur und kann so die darin liegenden Servlets, JSPs und Konfigurationsdateien finden. Während der Entwicklung wird im Allgemeinen nicht direkt innerhalb des Webapplikationsverzeichnis des Web Container gearbeitet, sondern - meistens mittels einer integrierten Entwicklungsumgebung (kurz IDE für Integrated Development Environment) - eine eigene Projektstruktur verwendet. Zum Testen werden die Dateien der Webapplikation dem Web Container bekannt gemacht. Dies kann entweder die IDE automatisch übernehmen oder es wird ein WAR erstellt, das dann beim Web Container angemeldet oder in das Webapplikationsverzeichnis des Container hineinkopiert wird.

Da wir im Rahmen dieses Kurses nicht auf die Besonderheiten verschiedener IDEs (wie z.B. JBuilder, NetBeans oder Eclipse) eingehen können, haben wir auf die Erstellung IDE-spezifischer Projektstrukturen verzichtet. Wir liefern die Vorlagen für Aufgaben und Musterlösungen in einer allgemein gehaltenen Struktur. Die Vorgaben enthalten ein Skript, um die Quelldateien auch ohne IDE in ein WAR überführen zu können. Dafür ist lediglich die Installation des Java-Tools Ant (siehe unten) nötig.

Die von uns gelieferten Vorlagen und Musterlösungen verwenden folgende Verzeichnisstruktur:

Verzeichnis bzw. DateiInhalt
Projekt 
    buildErzeugte Dateien außer Klassendateien
        distErzeugtes WAR
    lib Bibliotheken, die nur zur Übersetzung benötigt werden und nicht im webapp/WEB-INF/lib-Verzeichnis liegen. In unserem Fall ist das lediglich die Bibliothek servlet-api.jar
    srcQuelldateien
    webappVerzeichnis der Webapplikation wie im Kurstext besprochen.
        WEB-INF
            classes
            lib
    build.xmlAnt-Buildskript, siehe unten

Tabelle 1 Verzeichnisstruktur eines Projekts

Ant

Ant ist ein von der Apache Software Foundation in Java geschriebenes Tool zur automatischen Durchführung bei der Entwicklung benötigter Aufgaben. Beispielsweise kann mit Ant der Quelltext übersetzt oder JAR-Dateien der Pakete erstellt werden. Ant kann hier heruntergeladen werden.

Zunächst wird das heruntergeladene Archiv in ein beliebiges Verzeichnis entpackt. Anschließend wird die Umgebungsvariable ANT_HOME angelegt (bei Windows XP: Rechtsklick auf Arbeitsplatz --> Eigenschaften --> Erweitert --> Umgebungsvariablen) und auf das Installationsverzeichnis gesetzt. Zusätzlich wird noch in die Umgebungsvariable Path das bin-Verzeichnis (%ANT_HOME%\bin) der Ant-Installation aufgenommen.

Ant führt beim Aufruf das im aktuellen Verzeichnis befindliche Buildskript build.xml aus. Dort sind im XML-Format Anweisungen und Angaben zum Übersetzen usw. aufgeführt. Sie müssen dieses Buildskript nicht bearbeiten, es ist bereits fertig konfiguriert. Um die verschiedenen im Buildskript angegebenen Aufgaben, bei Ant Targets genannt, durchzuführen, müssen diese beim Aufruf angegeben werden. Folgende Targets sind im beigelegten Skript definiert:

TargetBeschreibung
buildÜbersetzt die Quelldateien in src nach webapp/WEB-INF/classes
warErstellt eine WAR-Datei in build/dist
javadocErstellt die API-Dokumentation in build/doc/api
cleanAllLöscht alle erzeugten Dateien

Tabelle 2 Targets des Buildskripts

Um eine WAR-Datei z.B. einer Musterlösung zu erzeugen, gehen Sie wie folgt vor:

  1. Laden Sie das Archiv der Musterlösung über die OKB herunter.
  2. Entpacken Sie das Archiv an beliebiger Stelle
  3. Rufen Sie die Kommandozeile (Windows) oder eine Shell (Unix) auf und wechseln Sie in das Verzeichnis der Musterlösung
  4. Rufen Sie Ant mit Angabe des gewünschten Targets auf, in diesem Fall also:
    ant war
    Ant findet das Buildskript automatisch im aktuellen Verzeichnis.
  5. Das fertige WAR finden Sie unter build/dist/<projektname>.war

Falls Sie kein WAR erstellen wollen, sondern die Webapplikation als Verzeichnis installieren wollen, gehen Sie so vor:

  1. - 3. wie oben
  2. Rufen Sie Ant zum Übersetzen der Quelldateien auf:
    ant compile
  3. Das Verzeichnis webapp stellt nun die Webapplikation dar. Der Verzeichnisname sollte dem Projektnamen angepasst werden.

Die folgende Abbildung zeigt die Ausgabe von Ant beim Übersetzen der Musterlösung einer der Selbsttestaufgaben aus Kurseinheit 1:

.../Selbsttestaufgaben/Zahlenraten-Loesung $ ant compile
Buildfile: build.xml

init:

compile:
    [mkdir] Created dir: .../Selbsttestaufgaben/Zahlenraten-Loesung/webapp/WEB-INF/classes
    [mkdir] Created dir: .../Selbsttestaufgaben/Zahlenraten-Loesung/build/src
    [javac] Compiling 2 source files to .../Selbsttestaufgaben/Zahlenraten-Loesung/webapp/WEB-INF/classes

BUILD SUCCESSFUL
Total time: 10 seconds

Abbildung 1 Ausgabe von Ant


Copyright © 1997-2005 FernUniversität in Hagen Autor: Jens von Pilgrim