Semut - Proyek Bangunan

Sekarang kita telah mempelajari tentang tipe data di Ant, sekarang saatnya untuk menerapkan pengetahuan tersebut. Kami akan membangun proyek di bab ini. Tujuan dari bab ini adalah untuk membangun file Ant yang mengkompilasi kelas-kelas java dan menempatkannya di folder WEB-INF \ kelas.

Pertimbangkan struktur proyek berikut -

  • Skrip database disimpan di db map.

  • Kode sumber java disimpan di src map.

  • Gambar, js, META-INF, gaya (css) disimpan di file war map.

  • JSP disimpan di file jsp map.

  • File jar pihak ketiga disimpan di lib map.

  • File kelas java disimpan di WEB-INF\classes map.

Proyek ini membentuk Hello World Aplikasi Fax untuk sisa tutorial ini.

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

Berikut adalah build.xml yang diperlukan untuk proyek ini. Mari kita bahas sepotong demi sepotong.

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

Pertama, mari kita deklarasikan beberapa properti untuk folder source, web, dan build.

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

Dalam contoh ini -

  • src.dir mengacu pada folder sumber proyek tempat file sumber java dapat ditemukan.

  • web.dir mengacu pada folder sumber web proyek, tempat Anda dapat menemukan JSP, web.xml, css, javascript, dan file terkait web lainnya

  • build.dir mengacu pada folder keluaran dari kompilasi proyek.

Properti dapat merujuk ke properti lain. Seperti yang ditunjukkan pada contoh di atas, filebuild.dir properti membuat referensi ke web.dir Properti.

Dalam contoh ini, file src.dir mengacu pada folder sumber proyek.

Target default proyek kami adalah compiletarget. Tapi pertama-tama mari kita lihatclean target.

Target bersih, seperti namanya, menghapus file di folder build.

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

Master-classpath menyimpan informasi classpath. Dalam hal ini, ini menyertakan kelas-kelas dalam folder build dan file jar di folder lib.

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

Terakhir, build target untuk membangun file. Pertama-tama, kita buat direktori build, jika belum ada. Kemudian kami menjalankan perintah javac (menetapkan jdk1.5 sebagai kompilasi target kami). Kami menyediakan folder sumber dan classpath ke tugas javac dan memintanya untuk melepaskan file kelas di folder build.

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

Pelaksana Ant pada file ini mengkompilasi file sumber java dan menempatkan kelas-kelas di folder build.

Hasil berikut adalah hasil dari menjalankan file Ant -

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

BUILD SUCCESSFUL
Total time: 6.3 seconds

File-file tersebut dikompilasi dan ditempatkan di build.dir map.