Ant - projekty budowlane

Teraz, gdy poznaliśmy typy danych w Ant, nadszedł czas, aby wprowadzić tę wiedzę w życie. W tym rozdziale zbudujemy projekt. Celem tego rozdziału jest zbudowanie pliku Ant, który kompiluje klasy java i umieszcza je w folderze WEB-INF \ classes.

Rozważ następującą strukturę projektu -

  • Skrypty bazy danych są przechowywane w pliku db teczka.

  • Kod źródłowy Java jest przechowywany w pliku src teczka.

  • Obrazy, js, META-INF, style (css) są przechowywane w pliku war teczka.

  • Strony JSP są przechowywane w pliku jsp teczka.

  • Pliki JAR innych firm są przechowywane w lib teczka.

  • Pliki klas java są przechowywane w WEB-INF\classes teczka.

Ten projekt tworzy Hello World Aplikacja faksowa w pozostałej części tego samouczka.

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

Oto plik build.xml wymagany dla tego projektu. Rozważmy to kawałek po kawałku.

<?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>

Najpierw zadeklarujmy niektóre właściwości dla folderów źródłowych, internetowych i kompilacji.

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

W tym przykładzie -

  • src.dir odnosi się do folderu źródłowego projektu, w którym można znaleźć pliki źródłowe Java.

  • web.dir odnosi się do folderu źródłowego sieci WWW projektu, w którym można znaleźć strony JSP, web.xml, css, javascript i inne pliki związane z siecią

  • build.dir odnosi się do folderu wyjściowego kompilacji projektu.

Właściwości mogą odnosić się do innych właściwości. Jak pokazano w powyższym przykładzie, plikbuild.dir właściwość odwołuje się do web.dir własność.

W tym przykładzie src.dir odnosi się do folderu źródłowego projektu.

Domyślnym celem naszego projektu jest compilecel. Ale najpierw spójrzmy na plikclean cel.

Czysty cel, jak sugeruje nazwa, usuwa pliki w folderze kompilacji.

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

Główna-ścieżka klas zawiera informacje o ścieżce klas. W tym przypadku obejmuje klasy w folderze kompilacji i pliki jar w folderze lib.

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

Na koniec cel kompilacji do kompilowania plików. Przede wszystkim tworzymy katalog budowania, jeśli nie istnieje. Następnie wykonujemy polecenie javac (określając jdk1.5 jako naszą docelową kompilację). Dostarczamy folder źródłowy i ścieżkę klas do zadania javac i prosimy o upuszczenie plików klas w folderze kompilacji.

<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>

Wykonanie Ant na tym pliku kompiluje pliki źródłowe Java i umieszcza klasy w folderze kompilacji.

Poniższy wynik jest wynikiem działania pliku Ant -

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

BUILD SUCCESSFUL
Total time: 6.3 seconds

Pliki są kompilowane i umieszczane w build.dir teczka.