Bir yazılım projesine başladınız. Proje geliştirme süreci bir aşamayı artık geçti ve sizin belli aralıklarla versiyon çıkarmanız, ve bu versiyonu dağıtmanız gerekiyor. Normal şartlar altında bu süreç sizin için karın ağrısına dönüşüyor, ya da şirkette birinin gereksiz yere önemli konuma gelmesine sebep olabilir.

Yüksek ihtimalle bir ekip olduğunuz için, VCS (Version Control System) kullanıyorsunuzdur. Yani projenin en son halini sistemden çekmeniz gerekmektedir. Projenizi sattığınız için, bazı saldırılardan kurtulmak için derlenmiş dosyaları şifreleyip (encrypt) daha sonra obfuscate etmeniz gerekmektedir. Tabi jar dosyalarını oluşturup, o dosyaları gerekli yerlere yüklemeniz kopyalarını dağıtmanız gerekmektedir. Bunlardan başka Release Notes ve dökümantasyon yayınlamanız gerekmektedir. Tabi daha önceden derleme veya daha sonra JNLP dosyaları oluştururken bazı kütüphaneleri de eklenemiz gerekmektedir.

Yani yeni versiyon çıkacağı zaman;

  • Projenizi açıp dosyaları VCS‘den update etmek

  • VCS‘deki dosyaları versiyon numarası ile tag’lemek

  • Varsa yeni kütüphaneleri eklemek

  • Projeyi en baştan derlemek

  • Daha sonra versiyon numarasını kullandığınız bug monitor sistemine girmek

  • Yine aynı sistemden Release Notes ve dökümantasyon dosyalarını oluşturmak

  • Belki komut satırı ile belki yarattığınız .bat dosyaları ile jar dosyalarını oluşturmak

  • Oluşan jar dosyalarını obfuscate etmek

  • Obfuscate edilen dosyaları encrypt etmek

  • Bu dosyaları imzalamak

  • En son haline getirilen bu dosyaları bazı yerlere kopyalamak

Yani görüldüğü üzere yaklaşık 10 adım civarında yapmanız gereken bir iş vardır. Ve bu da bazı kriterler ışığında yaklaşık 10 ile 15 dk arasında sürenizi almaktadır. Belki de harikalar yaratan programınızı üretmek için resmen siz elinden tutup taşıyorsunuz onu :)

Bu süreci optimum sürede ve minimum eforla halletmek için Apache Ant bize yardım edebilir.

Öncelikle Ant, dosyasından da anlaşılacağı üzere, build işlemini yapmak üzere düşünülmüş bir araçtır. Ancak zaman içerisinde diğer ek özellikleriyle beraber sadece build / compile işlerini değil. Aynı zamanda release / deploy gibi bir sonraki safhada yer alan görevleri de rahatlıkla yerine getirebilmektedir. Burada da yukarıda saydığım çoğu işlemi otomatik olarak halledip bize sadece bir butona basıp versiyon numarasını girmekten başka bir iş yaptırmayacaktır.

Öncelikle Ant’_i indirip bazı ön hazırlıklarını halletmemiz gerekmektedir. http://ant.apache.org/ sitesinden _binary dağıtımı indirebilirsiniz. Daha sonra indirdiğiniz bu dosyayı bir yerlere açmanız gerekmektedir. Dosyaları açtıktan sonra sistem Path değişkenine aşağıdaki gibi Ant klasörü altında bin klasörünü eklemeniz gerekmektedir.

C:\Program Files\Apache Software Foundation\apache-ant-1.8.2\bin 

Bunlara ek olarak ANT_HOME değişkeni belirlemeniz gerekmektedir.

C:\Program Files\Apache Software Foundation\apache-ant-1.8.2 

Son olarak da eğer belirtilmemişse JAVA_HOME değişkenini belirlemeniz gerekmektedir.

C:\Program Files\Java\jdk1.6.0_14 

Hepsini bitirdikten sonra konsola

 
ant -h 

yazdığınızda aşağıdaki gibi bir bilgi ile karşılaşıyorsanız yükleme işlemi tamam demektir.

Yazının geri kalan bölümlerinde sırasıyla bazı örnekleri, CVS’den projeyi checkout / update etmeyi, dışarıdan kullanılan kütüphaneler ile beraber derlemeyi, jar dosyası oluşturmayı, dosyayı obfuscate, encrypt ve sign etmekten bahsedeceğim.