Kenan Erarslan

Apache Ant – 5) Veri tipleri

Ant, bizim için hazırda oluşturulmuş veri yapıları sağlar. Bu veri yapılarını programlama dilinin verdikleri ile karıştırmamak gerekir. Aksine ürün çıktıktan/yazıldıktan sonra kullanım için oluşturulmuş servisler gibi düşünmek daha mantıklı olacaktır.

Aşağıda listelenen veri tipleri Apache Ant tarafından önceden tanımlanmıştır.


Fileset

Fileset veri yapısı bir dizi dosyayı belirlemek için kullanılan bir veri yapısıdır. Bu veri yapısı daha çok dosyaların derleme işlemine tabii olacağını ya da hariç tutulacağını belirlemek için kullanılır. Bu belirlemeler için bazı desenler (patterns) kullanılır.

Örneğin, aşağıdaki örneğe bakarak değerlendirelim. Burada src özelliği projenin kodlarının bulunduğu klasörü gösterir.

Fileset veri yapısı içinde Stub geçen dosyalar hariç geriye kalan bütün .java uzantılı dosyaları seçmek için kullanılmıştır. Burada uygulanan filtre dosya isimlerinde büyük/küçük ayrımı yaparak (case-sensitive) çalışır. Yani projede Ornekstub.java dosyası varsa bu dosya derleme işleminde hariç tutulmayacaktır.

<fileset dir="${src}" casesensitive="yes">
   <include name="**/*.java"/>
   <exclude name="**/*Stub*"/>
</fileset>

Pattern Set

Pattern Set belirli parametrelere ve desenlere göre dosya ve klasörleri filtrelemek için kullanılan bir veri yapısıdır. Desenler aşağıda belirtilen karakterler kullanılarak oluşturulur.

Aşağıdaki örnek Pattern Set veri yapısının nasıl kullanıldığını göstermektedir.

 <patternset id="stub.olmadan.java.dosyalari">
   <include name="src/**/*.java"/>
   <exclude name="src/**/*Stub*"/>
</patternset>

Pattern set belirlendikten sonra fileset içinde belirteç olarak kullanılabilir.

<fileset dir="${src}" casesensitive="yes">
   <patternset refid="stub.olmadan.java.dosyalari"/>
</fileset>

File List

Filelist veri yapısı filset veriyapısına benzer bir yapıdır. Aralarındaki farklar aşağıda listelenmiştir.

Şimdi filelist veri yapısı için bir örnek inceleyelim. Örneğimizde webapp.src.folder özelliği web uygulamasının kaynak kod klasörünü göstermektedir.

<filelist id="config.files" dir="${webapp.src.folder}">
   <file name="applicationConfig.xml"/>
   <file name="faces-config.xml"/>
   <file name="web.xml"/>
   <file name="portlet.xml"/>
</filelist>

Filter Set

Filterset veri yapısını kopyalama(copy) komutu ile beraber kullanırsanız, kopyalanan dosyaların içinde bununan belirli metni değiştirerek kopyalama işlemini yaparsınız. Örnek vermek gerekirse; uygulamanızın her versiyon dökümantasyonunu yapmak istiyorsunuz ve her seferinde version numarasını değiştirmek için dosya dosya çalışmanız gerekiyor. Bu çalışma şekli yerine sabit bir metin belirleyerek derleme işlemi sırasında o sabit metni istediğiniz değerle değiştirebilirsiniz. Örnek için aşağıdaki kodu inceleyelim.

<copy todir="${hedef.dir}">
   <fileset dir="${surum_notlari.dir}" includes="**/*.txt"/>
   <filterset>
      <filter token="VERSIYON" value="${guncel.versiyon}"/>
   </filterset>
</copy>

Bu örnekde;

Path

Path veri yapısı genel olarak class-path belirlemek için kullanılır. Girilen değerler noktalı virgül (;) veya virgül (,) karakteri ile birbirinden ayrılır. Bu karakterler çalışma anında çalıştırılan sistemin belirlediği karakterler ile otomatik olarak değiştirilir.

Class-path ise bir dosya kümesi olup, bu küme içinde proje kapsamında kullanılan .jar dosyaları ve .class dosyalarını belirlemek için kullanılır.

<path id="build.classpath.jar">
   <pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/>
   <fileset dir="lib">
      <include name="**/*.jar"/>
   </fileset>
</path>

Bu örnekde;

Exit mobile version