Wednesday 9 July 2008

Simple BuildFile

Simple BuildFile(Basit bir build file yapısı ve Örneği)
Ant öğrenmeye yazılarımı bile okuyacak kadar kararlı,ilk yazılarımdan sıkılmayıp bunu okuma heyecanını yaşayan siz değerli okura merhaba diyerek başlayayım.
“Ant kurulum” yazımın sonunda ant için yazabileceğiniz build.xml dosyasından bahsetmiştim.Yazacağınız scriptin ismi değişik olabilir önemli değil ama ben build.xml üzerinden anlatmak istedim.(Derlerken ant yazması ant –f bisey.xml yazmasından daha kolay oldugu için olsa gerek… )
BuildFilelar XML formatında yazılırlar.Her yazdığımız script bir Project ve en az bir target içermek zorundadır.Targetlar task elemenentlerini içerirler.Her bir task id özelliğine sahiptir.(Unique olması zorunludur.)Şimdi bunlara kısa kısa değinelim.

Projects

Name,defaut,basedir olmak üzere 3 özelliğe sahiptir.Name malumunuz üzere proje ismi.Default ise ilk olarak ele alınacak targeti gösterir.Basedir projede herhangi bir path belirtildiğinde nereden itibaren ele alınacaksa onu gösterir.OS taki göreli path denilen şeye tekabul ediyor.

Targets

Targetlar başka targetlara bağımlı olabilirler.Ama derleme işlemi için bir targetınız olması lazım.Birbirine bağımlı olan targetlar sonuç olarak derleme işlemini yapan bu tageta bağlı olmalıdır. Her target 1 kere çalıştırılır.Hatta targetlar propertylerin set edilmesine göre if(veya unless) ile çalıştırılabilirler.Kontrol edilecek bu property olarak tanımlanır.Target özelliklerinden depend ve unless ikisi beraber set edilmişse depend daha önce çalıştırılır.

Task

Task çalıştırılabilir küçük bir kod parçasıdır.Task birden fazla özelliğe sahip olabilir.Bu özellikler propertynin referansını içerebilir.Bu referancelar task çalışmadan önce çözülür.Genel olarak
"taskname attribu=”value1” attribu=”value2” " şeklinde kullanılırlar.Taskler taskname özellikleriyle paylaşılabilirler.Taskler
"taskname id="taskID" ... "
Şeklinde id ilede tanımlanabilirler.( id yine unique as u know) .Hatta ve hatta taskleri
""
Şeklinde tanımlayarak get.instance(“task1”) ile java projesinde kullanabiliriz.

Properties

Propertyler name ve value özelliklerine sahiptirler.Name case-sensitive dir.Propertyler task özelliklerinde değer olarak kullanılırlar. ${ propertyismi} şeklinde property içindeki değeri tasklerde kullanabilirsiniz.ilk başta yazılan bu propertyler targetlar çalışmadan önce hesaplanırlar.
Built-in Properties
Ant sistem propertileri task i ile tanımlanmış ise onlarıda kullanabilir.Mesela ${os.name} operating sisteminin ismini verir.Sistem propertylerini adresinden öğrenebilirsiniz.

Command-line Arguments

Bazı taskler argument alarak diğer bir processe command-line üzerinden bunları geçirirler.Bunu daha kolay yapmak için,argumanları özelleştiririz.Bunu space karakter koyarak ,iç içe arg elementi kullanarak yapabiliriz.
Value=tek command-line argumanı boşluk karakteri içerebilir.
File=Dosya ismi tek command-line argumanı gibi,dosyanın absolute ismini olacak.
Path=Path seperator olarak ; : içerebilir.Ant bunları platformun normal seperatorune çevirecektir.
Line=bir bosluk ve limitsiz – command-line argumanını listesidir.
Yukarıdakilerden sadece birisi kullanılabilir.

is a single command-line argument containing a space character, not separate commands "-l" and "-a".

This is a command line with two separate arguments, "-l" and "-a".

is a single command-line argument with the value \dir;\dir2;\dir3 on DOS-based systems and /dir:/dir2:/dir3 on Unix-like systems.


Bu konu o kadar detaylı ki keserek anlatmak zorunda kaldım.Çok önemli bulduğunuz ve söylenmemiş konularda yardımlarınızı bekliyorum.Daha geniş paylaşımlarda yeniden görüşmek üzere salıcakla kalın…