Skip to content
Menu
Kenan Erarslan
  • Hasscript
    • BİNlerce cevap
    • Hello world!
    • Hasscript motivasyonumuz
    • 60 soruyu geçtik
    • 50 Üye / 90 soru / 100 cevap.
    • 200 soru
    • 365 gün geride kaldı.
    • 2019’un Hasscript’i
  • Experience
    • How to select Right Programming Language For Next Project
    • BigData Study
      • Hadoop Learning Journey / 1 / What is Hadoop
      • Hadoop Study Part 2 – Meaningless Fight
      • Hadoop Learning Journey / 3 / Reinventing The Wheel
  • Türkçe
    • Apache Ant
      • Apache Ant – 1) Kurulum
      • Apache Ant – 2) Dosyaları derlemek
      • Apache Ant – 3) Özellik işleri (property tasks)
      • Apache Ant – 4) Özellik dosyaları
      • Apache Ant – 5) Veri tipleri
      • Apache Ant – 6) Proje derlemek
      • Apache Ant – 7) Döküman derlemek
      • Apache Ant – 8) Jar oluşturmak
    • Duygu / Düşünce
      • Ben bu işin neresindeyim?
      • Enkazlar ülkesi
      • Hayal kurmak güzeldir.
      • Arch Linux ile tanışmak ve zorluklar
Kenan Erarslan

Apache Ant – 8) Jar oluşturmak

Posted on December 23, 2017April 17, 2020

Proje derlendikten sonra ilk akla gelen bu sınıf dosyalarının nasıl tertipli bir hale getirileceği oluyor. Bu işlem için eğer uygulamamız standalone (konsol/windows ) ise java bize jar dosyaları oluşturulması yönünde bir tavsiye veriyor.

Ant ile jar dosyaları oluşturmak oldukça kolay bir işlemdir ve jar görevi kullanılarak yapılır. Jar görevine ait olan ve sıklıkla kullanılan özellikleri aşağıda tablo olarak bulabilirsiniz.

ÖzellikTanımı
basedirOluşturulacak Jar dosyasının çıkması beklenen hedef klasör olup, öntanımlı olarak projenin hedef ana klasörü ile aynıdır.
compressJar dosyası oluşturulurken Ant’a bazı dosyaların sıkıştırılacağını belirtmek için kullanılır.
keepcompressionCompress özelliği tek tek dosyalara uygulanırken, bu özellik bütün dosyaların sıkıştırılması için kullanılır.
destfileÇıkacak dosyanın adının belirtilmesi için kullanılır.
duplicateAynı dosyanın birden fazla bulunması durumunda ne yapılacağını belirlemek için kullanılır.
excludesAnt’a derleme işlemi yapılırken hariç tutulacak dosyaların listesini vermek için kullanılır. Virgül kullanılarak dosyalar birbirinden ayrılır.
exculudesfileBir önceki excludes ile aynı işe yarar. Tek farkı bu seçenekte dosyalar için birer desen ile belirtilir.
includesExcludes işleminin tersini yani derleme içinde bulunacak dosyaların belirlenme işlemi için kullanılır.
includesfileExculudesfile işleminin tersi.
updateJar dosyasının içinde zaten bulunan dosyalar eklenecekse onları ezmek için belirtilir.

Merhaba Dünya projemizin üzerinden devam ederek jar dosyası çıkarmak üzere bir geliştirme yapalım. Bu işlemi yapmadan önce aşağıdaki jar görevini inceleyelim.

<jar destfile = "${web.dir}/lib/util.jar" basedir = "${derle.dir}/classes" includes = "app/util/**" excludes = "**/Test.class" />

web.dir özelliği web dosyalarının bulunduğu klasörü gösterir. Bizim örneğimizde jar yapma işlemi çalıştırıldığında çıkacak dosyanın bulunacağı yeri göstermektedir.

derle.dir özellği ise jar oluşturmak için kullanılacak olan .class dosyalarının nerede bulunacağını göstermektedir.

Bu örneğimizde bir util.jar adında bir dosya oluşturacağız ve bu dosya app.util altında bulunan dosyalar ve bu dosyalarda Test.class varsa kapsam dışında bırakılarak bir jar dosyası oluşturulacaktır.

Eğer oluşturduğumuz jar dosyasının çalıştırılabilir bir dosya olmasını istiyorsak, java bize manifest tanımlama zorunluluğu veriyor. Bu işlemi Ant içinden yapabiliriz. Manifest tanımlamak için main-class meta özelliğini kullanacağız.

Bu işlem için yukarıda verdiğimiz örnek üzerinden bir değişiklik yapacağız.

<jar destfile = "${web.dir}/lib/util.jar" basedir = "${derle.dir}/classes" includes = "app/util/**" excludes = "**/Test.class">
  <manifest>
    <attribute name = "Main-Class" value = "app.Main"/>
  </manifest>
</jar>

Bu jar işlevini çalıştırmak için işlevi olduğu gibi bir hedef(target) işleviyle sarmalamamız gerekir.

<target name="jar-derle">
<jar destfile = "${web.dir}/lib/util.jar" basedir = "${derle.dir}/classes" includes = "app/util/**" excludes = "**/Test.class">
  <manifest>
    <attribute name = "Main-Class" value = "app.Main"/>
  </manifest>
</jar>
</target>

Ant jar-derle şeklinde kodumuzu çalıştırabiliriz.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

eleven − 9 =

March 2021
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
293031  
« Feb    

RSS Hasscript.com | Programlama hakkında – Yeni soru ve cevaplar

  • npm proxy ayarlarını temizlemek nasıl yapılır?
  • Spring Security üzerinde bazı methodlara token olmadan nasıl erişebilirim?
  • Cevaplandı: Bir değerim var, sınıf tanımlamak istemiyorum. Nasıl tanımlayabilirim?
  • Spring security şifresiz login nasıl olabilirim?
  • Spring boot projesinde methodları rol bazlı nasıl ayırabilirim?
  • Cevaplandı: "No converter found capable of converting from type" hatası alıyorum, neden?
  • Cevaplandı: Spring data jpa için limit nasıl tanımlarım?
  • Cevaplandı: Java'da para değerlerini ne tarz değişkende tutmak mantıklıdır?
  • "There is no PasswordEncoder mapped for the id " hatası nasıl çözülür?
  • Cevaplandı: vuetify ile validasyonda 0 sorunu
©2021 Kenan Erarslan | WordPress Theme by Superbthemes.com