Apache Ant – 2) Dosyaları derlemek

Bir Ant projesini yapılandırmak için genel olarak build.xml dosyası kullanılır. Genelde bu dosya projenin kök dizininde bulunur. Fakat bu dosyanın ismi ve yeri için bir sınırlama söz konusu değildir. Dosyanın adını değiştirmek veya istediğiniz bir yere koymak konusunda özgürüz. Bu uygulayacağımız örnek için bilgisayarınızda herhangi bir klasör altında build.xml dosyası oluşturuyoruz ve içine aşağıdaki satırları kaydediyoruz.

 <?xml version="1.0"?>
<project name="Merhaba Dünya Projesi" default="bilgi">
  <target name="bilgi">
    <echo>Merhaba Dünya - Apache Ant'a hoş geldiniz!</echo>
  </target>
</project>

Unutmayalım ki; ilk satırda bulunan xml bildiriminden önce herhangi bir boşluk karakteri veya boş satırlar bulunmamalıdır. Bulunması durumunda çalıştırdığımız zaman Ant bize hata verecektir. Bütün Ant yapılandırma dosyaları bir project elemanına ve bir target alt elemanına (çocuğuna) sahip olmalıdır.

ÖzellikTanım
nameProjenin adı (isteğe bağlı)
defaultKod için öntanımlı yapılandırma hedefi. Bir proje için birden fazla yapılandırma hedefi konulabilir. Öntanımlı olarak burada belirtilen hedef kullanılacaktır. (zorunlu)
basedirProjenin kök klasörünün nerede bulunduğu bilgisi (isteğe bağlı)

Hedef (target) bir kerede çalıştırmak istenilen adımların toplandığı bir liste/kod bütünü olarak düşünülebilir. Bizim örneğimizde ise ekrana sadece bilgilendirici bir mesaj yazılmıştır.

Hedef (target) diğer hedeflere bağımlı olabilir. Örneğin yükle adında bir hedefimiz olduğunu düşünelim. Yükle hedefi önce paketle hedefine bağlı olabilir. Paketle hedefi de temizle ve yapılandır hedeflerine bağlı olabilir. Bu şekilde hedeflerin bağlılığını çeşitlendirmemiz devam edebilir.

Örneğin:

<target name="yukle" depends="paketle"> 
.... 
</target>
<target name="paketle" depends="temizle,derle"> 
.... 
</target>
<target name="temizle" > 
.... 
</target>
<target name="derle" >
 .... 
</target>

Target(hedef) elemanı aşağıda saydığımız özelliklere sahip olabilir.

ÖzellikTanım
nameHedefin adı (Zorunlu)
dependsVirgülle ayrılı liste olarak bağlı olduğu hedeflerin isimleri (isteğe bağlı)
descriptionHedefin kısa tanımı(isteğe bağlı)
ifBelirlenen şarta bağlı olarak hedefin çalıştırılıp çalıştırılmayacağı belirlenebilir (isteğe bağlı)
unlessHedefi bir Eklenti Noktasına(Extension Point) eklemek için kullanılır. Eklenti Noktası hedef benzeri bir yapı olup içinde herhangi bir işlem bulundurmamaktadır. (isteğe bağlı)

Yukarıda kullanılan Echo işlemi ekrana bilgilendirme mesajı veren basit bir komuttur. Bizim örneğimizde “Merhaba-Apache Ant ile” yazmaktadır.

Örneğimizi çalıştırmak için konsol ekranını açıp build.xml dosyamızın bulunduğu yere gitmemiz ve “ant”veya “ant bilgi” komutunu çalıştırmamız gerekiyor. İki durumda da kodumuz çalışacaktır. Default target olarak “bilgi” hedefini belirlediğimiz için sadece ant komutu da çalışacaktır.