Ameisenbauprojekte

Nachdem wir die Datentypen in Ant kennengelernt haben, ist es an der Zeit, dieses Wissen in die Tat umzusetzen. In diesem Kapitel werden wir ein Projekt erstellen. In diesem Kapitel wird eine Ant-Datei erstellt, in der die Java-Klassen kompiliert und im Ordner WEB-INF \ classes abgelegt werden.

Betrachten Sie die folgende Projektstruktur -

  • Die Datenbankskripte werden in der gespeichert db Mappe.

  • Der Java-Quellcode wird im gespeichert src Mappe.

  • Die Bilder, js, META-INF, Stile (CSS) werden im gespeichert war Mappe.

  • Die JSPs werden in der gespeichert jsp Mappe.

  • Die JAR-Dateien von Drittanbietern werden in der gespeichert lib Mappe.

  • Die Java-Klassendateien werden in der gespeichert WEB-INF\classes Mappe.

Dieses Projekt bildet die Hello World Faxanwendung für den Rest dieses Tutorials.

C:\work\FaxWebApplication>tree
Folder PATH listing
Volume serial number is 00740061 EC1C:ADB1
C:.
+---db
+---src
.  +---faxapp
.  +---dao
.  +---entity
.  +---util
.  +---web
+---war
   +---images
   +---js
   +---META-INF
   +---styles
   +---WEB-INF
      +---classes
      +---jsp
      +---lib

Hier ist die für dieses Projekt erforderliche build.xml. Betrachten wir es Stück für Stück.

<?xml version = "1.0"?>
<project name = "fax" basedir = "." default = "build">
   <property name = "src.dir" value = "src"/>
   <property name = "web.dir" value = "war"/>
   <property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>
   <property name = "name" value = "fax"/>

   <path id = "master-classpath">
      <fileset dir = "${web.dir}/WEB-INF/lib">
         <include name = "*.jar"/>
      </fileset>
      
      <pathelement path = "${build.dir}"/>
   </path>

   <target name = "build" description = "Compile source tree java files">
      <mkdir dir = "${build.dir}"/>
      
      <javac destdir = "${build.dir}" source = "1.5" target = "1.5">
         <src path = "${src.dir}"/>
         <classpath refid = "master-classpath"/>
      </javac>
   </target>
 
   <target name = "clean" description = "Clean output directories">
      <delete>
         <fileset dir = "${build.dir}">
            <include name = "**/*.class"/>
         </fileset>
      </delete>
   </target>
</project>

Lassen Sie uns zunächst einige Eigenschaften für die Quell-, Web- und Build-Ordner deklarieren.

<property name = "src.dir" value = "src"/>
<property name = "web.dir" value = "war"/>
<property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>

In diesem Beispiel -

  • src.dir verweist auf den Quellordner des Projekts, in dem sich die Java-Quelldateien befinden.

  • web.dir verweist auf den Webquellordner des Projekts, in dem Sie die JSPs, web.xml, css, javascript und andere webbezogene Dateien finden

  • build.dir verweist auf den Ausgabeordner der Projektzusammenstellung.

Eigenschaften können sich auf andere Eigenschaften beziehen. Wie im obigen Beispiel gezeigt, ist diebuild.dir Eigenschaft verweist auf die web.dir Eigentum.

In diesem Beispiel ist die src.dir verweist auf den Quellordner des Projekts.

Das Standardziel unseres Projekts ist das compileZiel. Aber schauen wir uns zuerst die anclean Ziel.

Das saubere Ziel löscht, wie der Name schon sagt, die Dateien im Build-Ordner.

<target name = "clean" description = "Clean output directories">
   <delete>
      <fileset dir = "${build.dir}">
         <include name = "**/*.class"/>
      </fileset>
   </delete>
</target>

Der Master-Klassenpfad enthält die Klassenpfadinformationen. In diesem Fall enthält es die Klassen im Build-Ordner und die JAR-Dateien im lib-Ordner.

<path id = "master-classpath">
   <fileset dir = "${web.dir}/WEB-INF/lib">
      <include name = "*.jar"/>
   </fileset>
   
   <pathelement path = "${build.dir}"/>
</path>

Schließlich das Build-Ziel zum Erstellen der Dateien. Zunächst erstellen wir das Build-Verzeichnis, falls es nicht vorhanden ist. Dann führen wir den Befehl javac aus (wobei wir jdk1.5 als unsere Zielkompilierung angeben). Wir liefern den Quellordner und den Klassenpfad an die Javac-Task und bitten sie, die Klassendateien im Build-Ordner abzulegen.

<target name = "build" description = "Compile main source tree java files">
   <mkdir dir = "${build.dir}"/>
   
   <javac destdir = "${build.dir}" source = "1.5" target = "1.5" debug = "true"
      deprecation = "false" optimize = "false" failonerror = "true">
      <src path = "${src.dir}"/>
      <classpath refid = "master-classpath"/>
   </javac>
</target>

Durch Ausführen von Ant für diese Datei werden die Java-Quelldateien kompiliert und die Klassen im Build-Ordner abgelegt.

Das folgende Ergebnis ist das Ergebnis der Ausführung der Ant-Datei:

C:\>ant
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 6.3 seconds

Die Dateien werden kompiliert und in die build.dir Mappe.