Karınca - Bina Projeleri

Artık Ant'taki veri türlerini öğrendiğimize göre, bu bilgiyi eyleme geçirmenin zamanı geldi. Bu bölümde bir proje inşa edeceğiz. Bu bölümün amacı, java sınıflarını derleyen ve onları WEB-INF \ classes klasörüne yerleştiren bir Ant dosyası oluşturmaktır.

Aşağıdaki proje yapısını düşünün -

  • Veritabanı komut dosyaları, db Klasör.

  • Java kaynak kodu, src Klasör.

  • Görüntüler, js, META-INF, stiller (css), war Klasör.

  • JSP'ler şurada saklanır: jsp Klasör.

  • Üçüncü taraf jar dosyaları, lib Klasör.

  • Java sınıfı dosyaları, WEB-INF\classes Klasör.

Bu proje, Hello World Bu öğreticinin geri kalanı için Faks Uygulaması.

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

İşte bu proje için gerekli build.xml. Bunu parça parça ele alalım.

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

İlk olarak, kaynak, web ve derleme klasörleri için bazı özellikler bildirelim.

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

Bu örnekte -

  • src.dir java kaynak dosyalarının bulunabileceği projenin kaynak klasörünü ifade eder.

  • web.dir JSP'leri, web.xml, css, javascript ve diğer web ile ilgili dosyaları bulabileceğiniz projenin web kaynak klasörünü ifade eder

  • build.dir proje derlemesinin çıktı klasörünü ifade eder.

Özellikler diğer özelliklere başvurabilir. Yukarıdaki örnekte gösterildiği gibi,build.dir özelliği, web.dir Emlak.

Bu örnekte, src.dir projenin kaynak klasörünü ifade eder.

Projemizin varsayılan hedefi, compilehedef. Ama önce şuna bakalımclean hedef.

Temiz hedef, adından da anlaşılacağı gibi, yapı klasöründeki dosyaları siler.

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

Ana sınıf yolu, sınıf yolu bilgilerini tutar. Bu durumda, yapı klasöründeki sınıfları ve lib klasöründeki jar dosyalarını içerir.

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

Son olarak, dosyaları oluşturmak için yapı hedefi. Öncelikle eğer yoksa build dizini oluşturuyoruz. Daha sonra javac komutunu çalıştırıyoruz (jdk1.5'i hedef derlememiz olarak belirterek). Kaynak klasörü ve sınıf yolunu javac görevine sağlıyoruz ve sınıf dosyalarını derleme klasörüne bırakmasını istiyoruz.

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

Ant'ı bu dosya üzerinde yürütmek java kaynak dosyalarını derler ve sınıfları yapı klasörüne yerleştirir.

Aşağıdaki sonuç, Ant dosyasını çalıştırmanın sonucudur -

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

BUILD SUCCESSFUL
Total time: 6.3 seconds

Dosyalar derlenir ve build.dir Klasör.