Karınca Hızlı Kılavuzu

ANT, Another Neat Tool anlamına gelir. Apache'nin Java tabanlı bir oluşturma aracıdır. Apache Ant'ın ayrıntılarına girmeden önce, öncelikle neden bir derleme aracına ihtiyacımız olduğunu anlayalım.

Derleme Aracı İhtiyacı

Ortalama olarak, bir geliştirici, aşağıdakileri içeren derleme ve dağıtım gibi sıradan görevleri yerine getirmek için önemli miktarda zaman harcar:

  • Kodu derlemek
  • İkilileri paketleme
  • İkilileri test sunucusuna dağıtmak
  • Değişiklikleri test etmek
  • Kodu bir yerden diğerine kopyalamak

Yukarıdaki görevleri otomatikleştirmek ve basitleştirmek için Apache Ant kullanışlıdır. Komut satırından çalıştırılabilen bir İşletim Sistemi oluşturma ve dağıtma aracıdır.

Apache Ant'ın Tarihi

  • Ant, James Duncan Davidson (Tomcat'in orijinal yazarı) tarafından yaratıldı.

  • Başlangıçta Tomcat'i inşa etmek için kullanıldı ve Tomcat dağıtımının bir parçası olarak paketlendi.

  • Ant, Apache Make aracıyla ilişkili sorunlardan ve karmaşıklıklardan doğdu.

  • Ant, 2000 yılında Apache'de bağımsız bir proje olarak tanıtıldı. Apache Ant'ın Mayıs 2014'teki en son sürümü 1.9.4'tür.

Apache Ant'ın Özellikleri

  • Ant, mevcut en eksiksiz Java oluşturma ve dağıtım aracıdır.

  • Ant, platformdan bağımsızdır ve dosya ayırıcılar gibi platforma özgü özellikleri işleyebilir.

  • Ant, 'dokunma' komutunu kullanarak bir dosyanın değiştirilme zamanını değiştirmek gibi platforma özgü görevleri gerçekleştirmek için kullanılabilir.

  • Ant betikleri düz XML kullanılarak yazılır. Eğer XML'e zaten aşina iseniz, Ant'ı oldukça hızlı öğrenebilirsiniz.

  • Ant, karmaşık tekrarlayan görevleri otomatikleştirmede iyidir.

  • Ant, önceden tanımlanmış görevlerin büyük bir listesiyle birlikte gelir.

  • Ant, özel görevler geliştirmek için bir arayüz sağlar.

  • Ant, komut satırından kolayca çağrılabilir ve ücretsiz ve ticari IDE'lerle entegre olabilir.

Apache Ant Ant, açık kaynak girişimi tarafından onaylanmış, tam teşekküllü bir açık kaynak lisansı olan Apache Yazılım Lisansı altında dağıtılmaktadır.

Tam kaynak kodu, sınıf dosyaları ve dokümantasyonu dahil olmak üzere en son Apache Ant sürümü şu adreste bulunabilir: http://ant.apache.org.

Apache Ant'ı Yükleme

Java Geliştirme Kiti'ni (JDK) bilgisayarınıza zaten indirip kurduğunuz varsayılmaktadır. Değilse, talimatları takip edin burada .

  • JAVA_HOME ortam değişkeninin, JDK'nızın kurulu olduğu klasöre ayarlandığından emin olun.

  • İkilileri şuradan indirin: http://ant.apache.org

  • Zip dosyasını uygun bir konuma c: \ klasörüne açın. Winzip, winRAR, 7-zip veya benzeri araçlar kullanarak.

  • Adlı yeni bir ortam değişkeni oluşturun ANT_HOME bu, bu durumda Ant kurulum klasörüne işaret eder c:\apache-ant-1.8.2-bin Klasör.

  • Apache Ant toplu iş dosyasının yolunu PATH ortam değişkenine ekleyin. Bizim durumumuzda bu,c:\apache-ant-1.8.2-bin\bin Klasör.

Apache Ant Kurulumunu Doğrulama

Apache Ant'ın bilgisayarınıza başarıyla kurulduğunu doğrulamak için komut isteminize ant yazın.

Şuna benzer bir çıktı görmelisiniz:

C:\>ant -version
Apache Ant(TM) version 1.8.2 compiled on December 20 2010

Yukarıdaki çıktıyı görmüyorsanız, lütfen kurulum adımlarını doğru şekilde uyguladığınızı doğrulayın.

Eclipse'i Yükleme

Bu eğitim, Ant ile Eclipse IDE'nin entegrasyonunu da kapsar. Bu nedenle, Eclipse'i henüz kurmadıysanız, lütfen Eclipse'i indirin ve kurun

Eclipse'i yüklemek için:

  • En son Eclipse ikili dosyalarını www.eclipse.org adresinden indirin

  • Eclipse ikili dosyalarını uygun bir konuma açın, örneğin c: \ klasörü

  • Eclipse'i c: \ eclipse \ eclipse.exe'den çalıştırın

Tipik olarak, Ant'ın derleme dosyası build.xmlprojenin temel dizininde bulunmalıdır. Ancak dosya adı veya konumu konusunda herhangi bir kısıtlama yoktur. Diğer dosya adlarını kullanmakta veya yapı dosyasını başka bir konuma kaydetmekte özgürsünüz.

Bu alıştırma için, bilgisayarınızın herhangi bir yerinde aşağıdaki içeriğin bulunduğu build.xml adlı bir dosya oluşturun:

<?xml version="1.0"?>
   <project name="Hello World Project" default="info">
   <target name="info">
      <echo>Hello World - Welcome to Apache Ant!</echo>
   </target>
</project>

Xml bildiriminden önce boş satırlar veya boşluklar olmamasına dikkat edin. Onlara izin verirseniz, karınca derlemesi yürütülürken aşağıdaki hata mesajı oluşur -

"[XX] [mM] [lL]" ile eşleşen işleme talimatı hedefine izin verilmez. Tüm derleme dosyaları,project eleman ve en az bir target öğesi.

XML öğesi project üç özelliği vardır:

Öznitellikler Açıklama
isim Projenin Adı. (İsteğe bağlı)
varsayılan Derleme komut dosyası için varsayılan hedef. Bir proje herhangi bir sayıda hedef içerebilir. Bu öznitelik, hangi hedefin varsayılan olarak değerlendirilmesi gerektiğini belirtir. (Zorunlu)
Basedir Projenin temel dizini (veya) kök klasörü. (İsteğe bağlı)

Hedef, tek birim olarak yürütmek istediğiniz görevler koleksiyonudur. Örneğimizde, kullanıcıya bilgi mesajı vermek için basit bir hedefimiz var.

Hedeflerin diğer hedeflere bağımlılıkları olabilir. Örneğin, birdeploy hedefin bir bağımlılığı olabilir package hedef, package hedefin bir bağımlılığı olabilir compilehedef vb. Bağımlılıklar,dependsöznitelik. Örneğin:

<target name="deploy" depends="package">
  ....
</target>
<target name="package" depends="clean,compile">
  ....
</target>
<target name="clean" >
  ....
</target>
<target name="compile" >
  ....
</target>

Hedef öğe aşağıdaki özniteliklere sahiptir:

Öznitellikler Açıklama
isim Hedefin adı (Gerekli)
bağlı olmak Bu hedefin bağlı olduğu tüm hedeflerin virgülle ayrılmış listesi. (İsteğe bağlı)
açıklama Hedefin kısa bir açıklaması. (isteğe bağlı)
Eğer Koşullu bir özniteliğin gerçekliğine bağlı olarak bir hedefin yürütülmesine izin verir. (isteğe bağlı)
sürece Hedefi, belirtilen Uzantı Noktasının bağımlılık listesine ekler. Bir Uzatma Noktası bir hedefe benzer, ancak herhangi bir görevi yoktur. (İsteğe bağlı)

echoYukarıdaki örnekteki görev, bir mesaj yazdıran önemsiz bir görevdir. Örneğimizde, Merhaba Dünya mesajını yazdırıyor .

Ant build dosyasını çalıştırmak için komut istemini açın ve build.xml'nin bulunduğu klasöre gidin ve şunu yazın: ant info. Ayrıca yazabilirsinizantyerine. İkisi de işe yarayacak çünküinfoyapı dosyasındaki varsayılan hedeftir. Aşağıdaki çıktıyı görmelisiniz:

C:\>ant
Buildfile: C:\build.xml

info: [echo] Hello World - Welcome to Apache Ant!

BUILD SUCCESSFUL
Total time: 0 seconds

C:\>

Karınca derleme dosyaları, en sevdiğiniz programlama dilinde yaptığınız gibi değişkenlerin tanımlanmasına izin vermeyen XML'de yazılmıştır. Bununla birlikte, tahmin edebileceğiniz gibi, Ant'ın proje adı, proje kaynak dizini vb. Gibi değişkenlerin bildirilmesine izin vermesi faydalı olacaktır.

Ant kullanır propertyözellikleri belirlemenize izin veren öğe. Bu, özelliklerin bir yapıdan diğerine veya bir ortamdan diğerine değiştirilmesine izin verir.

Varsayılan olarak Ant, yapı dosyasında kullanılabilecek aşağıdaki önceden tanımlanmış özellikleri sağlar:

Özellikleri Açıklama
karınca dosyası Derleme dosyasının tam konumu.
karınca versiyonu Apache Ant kurulumunun sürümü.
Basedir Yapının temelini, basedir özniteliği project öğesi.
ant.java.version Ant tarafından kullanılan JDK sürümü.
ant.project.name Projenin adı, aşağıda belirtildiği şekilde name rüşvet project öğesi.
ant.project.default-target Mevcut projenin varsayılan hedefi.
ant.project.invoked-hedefler Mevcut projede çağrılan hedeflerin virgülle ayrılmış listesi.
ant.core.lib Ant kavanoz dosyasının tam konumu.
karınca.ev Ant kurulumunun ana dizini.
ant.library.dir Ant kitaplık dosyalarının ana dizini - tipik olarak ANT_HOME / lib klasörü.

Ant ayrıca sistem özelliklerini (Örnek: file.separator) yapı dosyasında kullanılabilir hale getirir.

Yukarıdakilere ek olarak, kullanıcı, aşağıdakileri kullanarak ek özellikler tanımlayabilir propertyöğesi. Aşağıdaki örnek, adlı bir özelliğin nasıl tanımlanacağını gösterir.sitename:

<?xml version="1.0"?>
<project name="Hello World Project" default="info">
   <property name="sitename" value="www.tutorialspoint.com"/>
   <target name="info">
      <echo>Apache Ant version is ${ant.version} - You are 
         at ${sitename} </echo>
   </target>
</project>

Yukarıdaki derleme dosyasında Ant'ı çalıştırmak aşağıdaki çıktıyı üretir:

C:\>ant
Buildfile: C:\build.xml

info: [echo] Apache Ant version is Apache Ant(TM) version 1.8.2  
      compiled on December 20 2010 - You are at www.tutorialspoint.com

BUILD SUCCESSFUL
Total time: 0 seconds
C:\>

Bir avuç özellikle çalışıyorsanız, özellikleri doğrudan yapı dosyasında ayarlamak iyidir. Ancak, büyük bir proje için, özellikleri ayrı bir özellik dosyasında depolamak mantıklıdır.

Özellikleri ayrı bir dosyada saklamak aşağıdaki faydaları sağlar:

  • Farklı yürütme ortamı için farklı özellik ayarlarıyla aynı yapı dosyasını yeniden kullanmanıza izin verir. Örneğin, derleme özellikleri dosyası DEV, TEST ve PROD ortamları için ayrı olarak tutulabilir.

  • Bir özelliğin değerlerini (belirli bir ortamda) önceden bilmediğinizde kullanışlıdır. Bu, derlemeyi özellik değerinin bilindiği diğer ortamlarda gerçekleştirmenize olanak tanır.

Zor ve hızlı bir kural yoktur, ancak tipik olarak özellik dosyası adlandırılır build.properties ve yan tarafa yerleştirilir build.xmldosya. Dağıtım ortamlarına göre birden çok yapı özelliği dosyası oluşturabilirsiniz - örneğinbuild.properties.dev ve build.properties.test.

Yapı özellik dosyasının içeriği normal java özellik dosyasına benzer. Satır başına bir özellik içerirler. Her özellik bir ad ve bir değer çifti ile temsil edilir. Ad ve değer çiftleri eşittir (=) işaretiyle ayrılır. Özelliklerin uygun yorumlarla açıklanması şiddetle tavsiye edilir. Yorumlar, kare (#) karakteri kullanılarak listelenir.

Aşağıdaki örnek, bir build.xml dosya ve ilişkili build.properties dosya:

build.xml

<?xml version="1.0"?>
<project name="Hello World Project" default="info">
   <property file="build.properties"/>
      <target name="info">
         <echo>Apache Ant version is ${ant.version} - You are 
            at ${sitename} </echo>
      </target>
</project>

build.properties

# The Site Name
sitename=www.tutorialspoint.com
buildversion=3.3.2

Yukarıdaki örnekte, sitenameweb sitesi adına eşlenen özel bir özelliktir. Bu şekilde istediğiniz sayıda özel özellik bildirebilirsiniz. Yukarıdaki örnekte listelenen başka bir özel özellik,buildversion, bu örnekte yapının sürümünü ifade eder.

Yukarıdakilere ek olarak, Ant, önceki bölümde listelenen, ancak aşağıda bir kez daha temsil edilen önceden tanımlanmış bir dizi özellik ile birlikte gelir.

Özellikleri Açıklama
karınca dosyası Derleme dosyasının tam konumu.
karınca versiyonu Apache Ant kurulumunun sürümü.
Basedir Yapının temelini, basedir özniteliği project öğesi.
ant.java.version Ant tarafından kullanılan JDK sürümü.
ant.project.name Projenin adı, aşağıda belirtildiği şekilde name rüşvet project öğesi.
ant.project.default-target Mevcut projenin varsayılan hedefi.
ant.project.invoked-hedefler Mevcut projede çağrılan hedeflerin virgülle ayrılmış listesi.
ant.core.lib Ant kavanoz dosyasının tam konumu.
karınca.ev Ant kurulumunun ana dizini.
ant.library.dir Ant kitaplık dosyalarının ana dizini - tipik olarak ANT_HOME / lib klasörü.

Bu bölümde sunulan örnek, ant.version yerleşik mülk.

Ant, önceden tanımlanmış bir dizi veri türü sağlar. "Veri türleri" terimini programlama dilinde mevcut olanlarla karıştırmayın, bunun yerine bunları üründe zaten yerleşik olan bir dizi hizmet olarak düşünün.

Aşağıdaki veri türleri Apache Ant tarafından sağlanmaktadır.

Dosya kümesi

Dosya kümesi veri türleri, bir dosya koleksiyonunu temsil eder. Belirli bir modelle eşleşen dosyaları dahil etmek veya dışlamak için bir filtre olarak kullanılır.

Örneğin, aşağıdaki koda bakın. Burada src özelliği, projenin kaynak klasörüne işaret etmektedir.

Dosya kümesi, kaynak klasördeki 'Stub' kelimesini içerenler dışındaki tüm .java dosyalarını seçer. Dosya grubuna büyük / küçük harf duyarlı filtre uygulanır; bu, Samplestub.java adlı bir dosyanın dosya kümesinden hariç tutulmayacağı anlamına gelir.

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

Desen seti

Bir kalıp seti, dosyaları veya klasörleri belirli kalıplara göre kolayca filtrelemeye izin veren bir kalıptır. Aşağıdaki meta karakterler kullanılarak desenler oluşturulabilir:

  • ? - Yalnızca bir karakterle eşleşir.

  • * - Sıfır veya birçok karakterle eşleşir.

  • ** - Sıfır veya birçok dizini özyinelemeli olarak eşleştirir.

Aşağıdaki örnek, bir desen setinin kullanımını tasvir etmektedir.

<patternset id="java.files.without.stubs">
   <include name="src/**/*.java"/>
   <exclude name="src/**/*Stub*"/>
</patternset>

Kalıp kümesi daha sonra aşağıdaki gibi bir dosya kümesiyle yeniden kullanılabilir:

<fileset dir="${src}" casesensitive="yes">
   <patternset refid="java.files.without.stubs"/>
</fileset>

Dosya listesi

Dosya listesi veri türü, aşağıdaki farklılıklar dışında dosya kümesine benzer:

  • filelist, açıkça adlandırılmış dosya listeleri içerir ve joker karakterleri desteklemez.

  • dosya listesi veri türü, var olan veya olmayan dosyalar için uygulanabilir.

Dosya listesi veri türünün aşağıdaki örneğini görelim. Burada öznitelikwebapp.src.folder projenin web uygulaması kaynak klasörünü gösterir.

<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>

Filtre seti

Kopyalama göreviyle birlikte bir filtre kümesi veri türü kullanarak, modelle eşleşen tüm dosyalardaki belirli metni bir değiştirme değeriyle değiştirebilirsiniz.

Yaygın bir örnek, aşağıdaki kodda gösterildiği gibi sürüm numarasını sürüm notları dosyasına eklemektir.

<copy todir="${output.dir}">
   <fileset dir="${releasenotes.dir}" includes="**/*.txt"/>
   <filterset>
      <filter token="VERSION" value="${current.version}"/>
   </filterset>
</copy>

Bu Kodda:

  • Öznitelik output.dir projenin çıktı klasörüne işaret eder.

  • Öznitelik releasenotes.dir projenin sürüm notları klasörüne işaret eder.

  • Öznitelik current.version projenin mevcut sürüm klasörünü gösterir.

  • Kopyalama görevi, adından da anlaşılacağı gibi, dosyaları bir konumdan diğerine kopyalamak için kullanılır.

Yol

pathveri türü genellikle bir sınıf yolunu temsil etmek için kullanılır. Yoldaki girişler, noktalı virgül veya iki nokta üst üste kullanılarak ayrılır. Bununla birlikte, bu karakterler çalışma zamanında, yürütme sisteminin yol ayırıcı karakteriyle değiştirilir.

Sınıf yolu, aşağıdaki örnekte gösterildiği gibi projedeki jar dosyalarının ve sınıfların listesine ayarlanır.

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

Bu kodda:

  • Öznitelik env.J2EE_HOME ortam değişkenine işaret eder J2EE_HOME.

  • Öznitelik j2ee.jar J2EE temel klasöründeki J2EE jar dosyasının adını gösterir.

Artık Ant'taki veri türlerini öğrendiğimize göre, bu bilgiyi eyleme geçirmenin zamanı geldi. Bu bölümde bir proje inşa edeceğiz. Bu bölümün amacı, java sınıflarını derleyen ve onları WEB-INF \ classes klasörüne yerleştiren bir Ant dosyası oluşturmaktır.

Aşağıdaki proje yapısını düşünün:

  • Veritabanı komut dosyaları, db Klasör.

  • Java kaynak kodu, src Klasör.

  • Görüntüler, js, META-INF, stiller (css), war Klasör.

  • JSP'ler şurada saklanır: jsp Klasör.

  • Üçüncü taraf jar dosyaları, lib Klasör.

  • Java sınıfı dosyaları, WEB-INF\classes Klasör.

Bu proje, Hello World Bu eğitimin geri kalanı için Faks Uygulaması.

C:\work\FaxWebApplication>tree
Folder PATH listing
Volume serial number is 00740061 EC1C:ADB1
C:.
+---db
+---src
.  +---faxapp
.  +---dao
.  +---entity
.  +---util
.  +---web
+---war
   +---images
   +---js
   +---META-INF
   +---styles
   +---WEB-INF
      +---classes
      +---jsp
      +---lib

İşte bu proje için gerekli build.xml. Bunu parça parça ele alalım.

<?xml version="1.0"?>
<project name="fax" basedir="." default="build">
   <property name="src.dir" value="src"/>
   <property name="web.dir" value="war"/>
   <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
   <property name="name" value="fax"/>

   <path id="master-classpath">
      <fileset dir="${web.dir}/WEB-INF/lib">
         <include name="*.jar"/>
      </fileset>
      <pathelement path="${build.dir}"/>
   </path>

   <target name="build" description="Compile source tree java files">
      <mkdir dir="${build.dir}"/>
      <javac destdir="${build.dir}" source="1.5" target="1.5">
         <src path="${src.dir}"/>
         <classpath refid="master-classpath"/>
      </javac>
   </target>
 
   <target name="clean" description="Clean output directories">
      <delete>
         <fileset dir="${build.dir}">
            <include name="**/*.class"/>
         </fileset>
      </delete>
   </target>
</project>

İlk olarak, kaynak, web ve derleme klasörleri için bazı özellikler bildirelim.

<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>

Bu örnekte:

  • src.dir java kaynak dosyalarının bulunabileceği projenin kaynak klasörünü ifade eder.

  • web.dir JSP'leri, web.xml, css, javascript ve web ile ilgili diğer dosyaları bulabileceğiniz projenin web kaynak klasörünü ifade eder

  • build.dir proje derlemesinin çıktı klasörünü ifade eder.

Özellikler diğer özelliklere başvurabilir. Yukarıdaki örnekte gösterildiği gibi,build.dir özelliği, web.dir Emlak.

Bu örnekte, src.dir projenin kaynak klasörünü ifade eder.

Projemizin varsayılan hedefi, compilehedef. Ama önce şuna bakalımclean hedef.

Temiz hedef, adından da anlaşılacağı gibi, yapı klasöründeki dosyaları siler.

<target name="clean" description="Clean output directories">
   <delete>
      <fileset dir="${build.dir}">
         <include name="**/*.class"/>
      </fileset>
   </delete>
</target>

Ana sınıf yolu, sınıf yolu bilgilerini tutar. Bu durumda, yapı klasöründeki sınıfları ve lib klasöründeki jar dosyalarını içerir.

<path id="master-classpath">
   <fileset dir="${web.dir}/WEB-INF/lib">
      <include name="*.jar"/>
   </fileset>
   <pathelement path="${build.dir}"/>
</path>

Son olarak, dosyaları oluşturmak için yapı hedefi. Öncelikle eğer yoksa build dizini oluşturuyoruz. Daha sonra javac komutunu çalıştırıyoruz (jdk1.5'i hedef derlememiz olarak belirterek). Kaynak klasörü ve sınıf yolunu javac görevine sağlıyoruz ve sınıf dosyalarını derleme klasörüne bırakmasını istiyoruz.

<target name="build" description="Compile main source tree java files">
   <mkdir dir="${build.dir}"/>
   <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"
      deprecation="false" optimize="false" failonerror="true">
      <src path="${src.dir}"/>
      <classpath refid="master-classpath"/>
   </javac>
</target>

Ant'ı bu dosya üzerinde yürütmek java kaynak dosyalarını derler ve sınıfları inşa klasörüne yerleştirir.

Aşağıdaki sonuç, Ant dosyasını çalıştırmanın sonucudur:

C:\>ant
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 6.3 seconds

Dosyalar derlenir ve build.dir Klasör.

Herhangi bir projede dokümantasyon bir zorunluluktur. Belgeleme, bir projenin sürdürülmesinde büyük rol oynar. Java, yerleşik olanın kullanımıyla dokümantasyonu kolaylaştırırjavadocaracı. Ant, talep üzerine belgeleri oluşturarak bunu daha da kolaylaştırır.

Bildiğiniz gibi, javadoc aracı oldukça esnektir ve bir dizi yapılandırma seçeneğine izin verir. Ant, bu yapılandırma seçeneklerini javadoc görevi aracılığıyla gösterir. Javadocs'a aşina değilseniz, bu Java Dokümantasyon Eğitimi ile başlamanızı öneririz .

Aşağıdaki bölüm, Ant'ta kullanılan en sık kullanılan javadoc seçeneklerini listeler.

Öznitellikler

Kaynak kullanılarak belirtilebilir sourcepath, sourcepathref veya sourcefiles.

  • sourcepath kaynak dosyaların klasörüne işaret etmek için kullanılır (örn. src klasörü).

  • sourcepathref yol özniteliği tarafından başvurulan bir yola başvurmak için kullanılır (örneğin, delegates.src.dir).

  • sourcefiles tek tek dosyaları virgülle ayrılmış liste olarak belirtmek istediğinizde kullanılır.

Hedef yol, destdir klasör (ör. build.dir).

Filtreleyebilirsin javadocdahil edilecek paket adlarını belirterek görev. Bu,packagenames öznitelik, paket dosyalarının virgülle ayrılmış listesi.

Javadoc sürecini yalnızca genel, özel, paket veya korumalı sınıfları ve üyeleri gösterecek şekilde filtreleyebilirsiniz. Bu,private, public, package ve protected Öznitellikler.

Ayrıca javadoc görevine, ilgili öznitelikleri kullanarak yazar ve sürüm bilgilerini dahil etmesini de söyleyebilirsiniz.

Ayrıca paketleri kullanarak birlikte gruplayabilirsiniz. group özelliği, böylece gezinmesi kolay hale gelir.

Hepsini bir araya koy

Temamıza devam edelim Hello worldFaks uygulaması. Faks uygulama projemize bir dokümantasyon hedefi ekleyelim.

Aşağıda, projemizde kullanılan örnek bir javadoc görevi verilmiştir. Bu örnekte, javadoc'u kullanmak için belirledik.src.dir kaynak dizin olarak ve doc hedef olarak.

Ayrıca java dokümantasyon sayfalarında görünen pencere başlığı, üstbilgi ve altbilgi bilgilerini de özelleştirdik.

Ayrıca üç grup oluşturduk:

  • kaynak klasörümüzdeki yardımcı program sınıfları için bir tane,
  • kullanıcı arayüzleri sınıfları için bir tane ve
  • veritabanı ile ilgili sınıflar için bir tane.

Veri paketi grubunun, faxapp.entity ve faxapp.dao olmak üzere iki pakete sahip olduğunu fark edebilirsiniz.

<target name="generate-javadoc">
   <javadoc packagenames="faxapp.*" sourcepath="${src.dir}" 
      destdir="doc" version="true" windowtitle="Fax Application">
      <doctitle><![CDATA[= Fax Application =]]></doctitle>
      <bottom>
         <![CDATA[Copyright © 2011. All Rights Reserved.]]>
      </bottom>
      <group title="util packages" packages="faxapp.util.*"/>
      <group title="web packages" packages="faxapp.web.*"/>
      <group title="data packages" 
         packages="faxapp.entity.*:faxapp.dao.*"/>
   </javadoc>
   <echo message="java doc has been generated!" />
</target>

Javadoc Ant görevini yapalım. Java dokümantasyon dosyalarını oluşturur ve doc klasörüne yerleştirir.

Ne zaman javadoc target yürütüldüğünde, aşağıdaki sonucu verir:

C:\>ant generate-javadoc
Buildfile: C:\build.xml

java doc has been generated!

BUILD SUCCESSFUL
Total time: 10.63 second

Java dokümantasyon dosyaları artık doc Klasör.

Genellikle javadoc dosyaları, sürümün veya paket hedeflerinin bir parçası olarak oluşturulur.

Java kaynak dosyalarınızı derledikten sonraki mantıksal adım, java arşivini, yani JAR dosyasını oluşturmaktır. Ant ile JAR dosyaları oluşturmak oldukça kolaydır.jargörev. Jar görevinin yaygın olarak kullanılan nitelikleri aşağıdaki gibidir:

Öznitellikler Açıklama
Basedir Çıktı JAR dosyası için temel dizin. Varsayılan olarak bu, projenin temel dizini olarak ayarlanır.
kompres Ant'a, JAR dosyasını oluştururken dosyayı sıkıştırmasını önerir.
sıkıştırmayı sürdürmek İken compress öznitelik tek tek dosyalar için geçerlidir, keepcompression özniteliği aynı şeyi yapar, ancak tüm arşiv için geçerlidir.
destfile Çıktı JAR dosyasının adı.
çiftleme Ant'a yinelenen dosyalar bulunduğunda ne yapması gerektiğini öğretir. Yinelenen dosyaları ekleyebilir, koruyabilir veya başarısız olabilirsiniz.
hariç tutar Ant'a bu virgülle ayrılmış dosya listesinin pakete dahil edilmemesini tavsiye eder.
dışlama dosyası Dışarıda bırakılan dosyaların bir kalıp kullanılarak belirtilmesi dışında yukarıdakiyle aynıdır.
inlcudes Dışlayanların tersi.
dosya içerir Hariç tutulan dosyanın tersi.
Güncelleme Ant'a önceden oluşturulmuş JAR dosyasındaki dosyaların üzerine yazmasını tavsiye eder.

Devam ediyor Hello WorldFaks Uygulama projesi, jar dosyalarını üretmek için yeni bir hedef ekleyelim. Ancak ondan önce, aşağıda verilen kavanoz görevini ele alalım.

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

Burada web.dirözelliği, web kaynak dosyalarının yoluna işaret eder. Bizim durumumuzda, bu, util.jar dosyasının yerleştirileceği yerdir.

build.dir Bu örnekteki özellik, util.jar için sınıf dosyalarının bulunabileceği derleme klasörüne işaret eder.

Bu örnekte, adında bir jar dosyası oluşturuyoruz util.jar sınıfları kullanarak faxapp.util.*paketi. Ancak Test adıyla biten sınıfları hariç tutuyoruz. Çıktı jar dosyası, web uygulaması kitaplık klasörüne yerleştirilecektir.

Util.jar dosyasını çalıştırılabilir bir jar dosyası yapmak istiyorsak, manifest ile Main-Class meta öznitelik.

Bu nedenle, yukarıdaki örnek şu şekilde güncellenecektir:

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

Jar görevini yürütmek için, onu bir hedefin, en yaygın olarak oluşturma veya paket hedefinin içine sarın ve çalıştırın.

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

Ant'ı bu dosya üzerinde çalıştırmak, bizim için util.jar dosyasını oluşturur.

Aşağıdaki sonuç, Ant dosyasını çalıştırmanın sonucudur:

C:\>ant build-jar
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 1.3 seconds

Util.jar dosyası artık çıktı klasörüne yerleştirilmiştir.

Ant ile WAR dosyaları oluşturmak son derece basittir ve JAR dosyaları oluşturma görevine çok benzer. Sonuçta, WAR dosyası, JAR dosyası gibi sadece başka bir ZIP dosyasıdır.

WAR görevi, JAR görevinin bir uzantısıdır, ancak WEB-INF / sınıflar klasörüne girenleri işlemek ve web.xml dosyasını oluşturmak için bazı güzel eklemeler içerir. WAR görevi, WAR dosyasının belirli bir düzenini belirtmek için kullanışlıdır.

WAR görevi, JAR görevinin bir uzantısı olduğundan, JAR görevinin tüm öznitelikleri WAR görevi için geçerlidir.

Öznitellikler Açıklama
webxml Web.xml dosyasının yolu
lib WEB-INF \ lib klasörüne neyin girileceğini belirten bir gruplama.
sınıflar WEB-INF \ classes klasörüne neyin gireceğini belirten bir gruplama.
Metainf MANIFEST.MF dosyasını oluşturma talimatlarını belirtir.

Devam ediyor Hello WorldFaks Uygulama projesi, jar dosyalarını üretmek için yeni bir hedef ekleyelim. Ama ondan önce savaş görevini ele alalım. Aşağıdaki örneği düşünün:

<war destfile="fax.war" webxml="${web.dir}/web.xml">
   <fileset dir="${web.dir}/WebContent">
      <include name="**/*.*"/>
   </fileset>
   <lib dir="thirdpartyjars">
      <exclude name="portlet.jar"/>
   </lib>
   <classes dir="${build.dir}/web"/>
</war>

Önceki örneklere göre, web.dir değişken, kaynak web klasörünü, yani JSP, css, javascript dosyalarını vb. içeren klasörü ifade eder.

build.dirdeğişken çıktı klasörünü ifade eder - Burası, WAR paketi için sınıfların bulunabileceği yerdir. Tipik olarak, sınıflar WAR dosyasının WEB-INF / classes klasöründe paketlenir.

Bu örnekte, fax.war adlı bir savaş dosyası oluşturuyoruz. WEB.XML dosyası web kaynak klasöründen alınır. Web altındaki 'WebContent' klasöründeki tüm dosyalar WAR dosyasına kopyalanır.

WEB-INF / lib klasörü, thirdpartyjars klasöründeki jar dosyalarıyla doldurulur. Ancak, uygulama sunucusunun lib klasöründe zaten mevcut olduğu için portlet.jar dosyasını hariç tutuyoruz. Son olarak, yapı dizininin web klasöründeki tüm sınıfları kopyalayıp WEB-INF / sınıflar klasörüne koyuyoruz.

Savaş görevini bir Ant hedefinin (genellikle paket) içine sarın ve çalıştırın. Bu, belirtilen konumda WAR dosyasını oluşturacaktır.

Sınıfları, lib, metainf ve webinf direktörlerini proje yapısının herhangi bir yerinde dağınık klasörlerde yaşamaları için iç içe yerleştirmek tamamen mümkündür. Ancak en iyi uygulamalar, Web projenizin WAR dosyasının yapısına benzer Web İçeriği yapısına sahip olması gerektiğini önermektedir. Faks Uygulaması projesinin yapısı bu temel ilke kullanılarak özetlenmiştir.

Savaş görevini yürütmek için onu bir hedefin, en yaygın olarak oluşturma veya paketleme hedefinin içine sarın ve çalıştırın.

<target name="build-war">
   <war destfile="fax.war" webxml="${web.dir}/web.xml">
   <fileset dir="${web.dir}/WebContent">
      <include name="**/*.*"/>
   </fileset>
   <lib dir="thirdpartyjars">
      <exclude name="portlet.jar"/>
   </lib>
   <classes dir="${build.dir}/web"/>
   </war>
</target>

Ant'ı bu dosyada çalıştırmak, fax.war bizim için dosya.

Aşağıdaki sonuç, Ant dosyasını çalıştırmanın sonucudur:

C:\>ant build-war
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 12.3 seconds

Fax.war dosyası artık çıktı klasörüne yerleştirilmiştir. Savaş dosyasının içeriği şöyle olacaktır:

fax.war:
   +---jsp             This folder contains the jsp files
   +---css             This folder contains the stylesheet files
   +---js              This folder contains the javascript files
   +---images          This folder contains the image files
   +---META-INF        This folder contains the Manifest.Mf
   +---WEB-INF
      +---classes   This folder contains the compiled classes
      +---lib       Third party libraries and the utility jar files
      WEB.xml       Configuration file that defines the WAR package

Ant'ı kullanarak Ant'ın farklı yönlerini öğrendik. Hello World Bit ve parça halinde faks web uygulaması.

Şimdi tam ve eksiksiz bir build.xml dosyası oluşturmak için her şeyi bir araya getirmenin zamanı geldi. Düşünmekbuild.properties ve build.xml dosyalar aşağıdaki gibidir:

build.properties

deploy.path=c:\tomcat6\webapps

build.xml

<?xml version="1.0"?>

<project name="fax" basedir="." default="usage">
   <property file="build.properties"/>
   <property name="src.dir" value="src"/>
   <property name="web.dir" value="war"/>
   <property name="javadoc.dir" value="doc"/>
   <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
   <property name="name" value="fax"/>

   <path id="master-classpath">
      <fileset dir="${web.dir}/WEB-INF/lib">
         <include name="*.jar"/>
      </fileset>
      <pathelement path="${build.dir}"/>
   </path>
    
   <target name="javadoc">
      <javadoc packagenames="faxapp.*" sourcepath="${src.dir}" 
         destdir="doc" version="true" windowtitle="Fax Application">
      <doctitle><![CDATA[<h1>= Fax Application =</h1>]]>
      </doctitle>
      <bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]>
      </bottom>
      <group title="util packages" packages="faxapp.util.*"/>
      <group title="web packages" packages="faxapp.web.*"/> 
      <group title="data packages" 
         packages="faxapp.entity.*:faxapp.dao.*"/>
      </javadoc>
   </target>

   <target name="usage">
      <echo message=""/>
      <echo message="${name} build file"/>
      <echo message="-----------------------------------"/>
      <echo message=""/>
      <echo message="Available targets are:"/>
      <echo message=""/>
      <echo message="deploy    --> Deploy application as directory"/>
      <echo message="deploywar --> Deploy application as a WAR file"/>
      <echo message=""/>
   </target>

   <target name="build" description="Compile main 
      source tree java files">
   <mkdir dir="${build.dir}"/>
      <javac destdir="${build.dir}" source="1.5" 
         target="1.5" debug="true"
         deprecation="false" optimize="false" failonerror="true">
      <src path="${src.dir}"/>
      <classpath refid="master-classpath"/>
      </javac>
   </target>

   <target name="deploy" depends="build" 
      description="Deploy application">
   <copy todir="${deploy.path}/${name}" 
      preservelastmodified="true">
      <fileset dir="${web.dir}">
         <include name="**/*.*"/>
      </fileset>
   </copy>
   </target>

   <target name="deploywar" depends="build" 
      description="Deploy application as a WAR file">
      <war destfile="${name}.war"
         webxml="${web.dir}/WEB-INF/web.xml">
         <fileset dir="${web.dir}">
            <include name="**/*.*"/>
         </fileset>
      </war>
      <copy todir="${deploy.path}" preservelastmodified="true">
         <fileset dir=".">
            <include name="*.war"/>
         </fileset>
      </copy>
   </target>
    

   <target name="clean" description="Clean output directories">
      <delete>
         <fileset dir="${build.dir}">
            <include name="**/*.class"/>
         </fileset>
      </delete>
   </target>
</project>

Bu örnekte:

  • Önce derleme özellikleri dosyasında Tomcat'teki webapps klasörünün yolunu şu şekilde bildiririz: deploy.path değişken.

  • Ayrıca, java dosyalarının kaynak klasörünü de src.dir değişken.

  • Ardından web dosyalarının kaynak klasörünü web.dir değişken. javadoc.dir java belgelerinin saklandığı klasördür ve build.dir derleme çıktı dosyalarını saklama yoludur.

  • Ardından web uygulamasının adını açıklıyoruz. fax bizim durumumuzda.

  • Ayrıca projenin WEB-INF / lib klasöründe bulunan JAR dosyalarını içeren ana sınıf yolunu da tanımlıyoruz.

  • Ayrıca, mevcut sınıf dosyalarını da dahil ediyoruz. build.dir ana sınıf yolunda.

  • Javadoc hedefi, proje için gereken javadoc'u üretir ve kullanım hedefi, derleme dosyasında bulunan ortak hedefleri yazdırmak için kullanılır.

Yukarıdaki örnek, iki dağıtım hedefini gösterir: deploy ve deploywar.

Konuşlandırma hedefi, son değiştirilen tarih saat damgasını koruyarak dosyaları web dizininden konuşlandırma dizinine kopyalar. Bu, çalışırken dağıtımı destekleyen bir sunucuya dağıtım yaparken kullanışlıdır.

Temiz hedef, önceden oluşturulmuş tüm dosyaları temizler.

Deploywar hedefi, savaş dosyasını oluşturur ve ardından savaş dosyasını uygulama sunucusunun konuşlandırma dizinine kopyalar.

Önceki bölümde, bir uygulamayı nasıl paketleyeceğimizi ve bir klasöre yerleştireceğimizi öğrendik.

Bu bölümde, web uygulamasını doğrudan uygulama sunucusu dağıtım klasörüne yerleştireceğiz, ardından hizmetleri başlatmak ve durdurmak için birkaç Ant hedefi ekleyeceğiz. Devam edelimHello Worldfaks web uygulaması. Bu, önceki bölümün devamı niteliğindedir, yeni bileşenler kalın olarak vurgulanmıştır .

build.properties

# Ant properties for building the springapp

appserver.home=c:\\install\\apache-tomcat-7.0.19
# for Tomcat 5 use $appserver.home}/server/lib
# for Tomcat 6 use $appserver.home}/lib
appserver.lib=${appserver.home}/lib

deploy.path=${appserver.home}/webapps

tomcat.manager.url=http://www.tutorialspoint.com:8080/manager
tomcat.manager.username=tutorialspoint
tomcat.manager.password=secret

build.xml

<?xml version="1.0"?>

<project name="fax" basedir="." default="usage">
   <property file="build.properties"/>
   <property name="src.dir" value="src"/>
   <property name="web.dir" value="war"/>
   <property name="javadoc.dir" value="doc"/>
   <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
   <property name="name" value="fax"/>

   <path id="master-classpath">
      <fileset dir="${web.dir}/WEB-INF/lib">
         <include name="*.jar"/>
      </fileset>
   <pathelement path="${build.dir}"/>
   </path>
    
   <target name="javadoc">
   <javadoc packagenames="faxapp.*" sourcepath="${src.dir}" 
      destdir="doc" version="true" windowtitle="Fax Application">
      <doctitle><![CDATA[<h1>= Fax Application 
         =</h1>]]></doctitle>
      <bottom><![CDATA[Copyright © 2011. All 
         Rights Reserved.]]></bottom>
      <group title="util packages" packages="faxapp.util.*"/>
      <group title="web packages" packages="faxapp.web.*"/>
      <group title="data packages" packages="faxapp.entity.*:faxapp.dao.*"/>
   </javadoc>
   </target>

   <target name="usage">
   <echo message=""/>
   <echo message="${name} build file"/>
   <echo message="-----------------------------------"/>
   <echo message=""/>
   <echo message="Available targets are:"/>
   <echo message=""/>
   <echo message="deploy    --> Deploy application as directory"/>
   <echo message="deploywar --> Deploy application as a WAR file"/>
   <echo message=""/>
   </target>

   <target name="build" description="Compile main 
      source tree java files">
   <mkdir dir="${build.dir}"/>
   <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"
      deprecation="false" optimize="false" failonerror="true">
      <src path="${src.dir}"/>
      <classpath refid="master-classpath"/>
   </javac>
   </target>

   <target name="deploy" depends="build" description="Deploy application">
      <copy todir="${deploy.path}/${name}" 
         preservelastmodified="true">
         <fileset dir="${web.dir}">
            <include name="**/*.*"/>
         </fileset>
      </copy>
   </target>

   <target name="deploywar" depends="build" 
      description="Deploy application as a WAR file">
      <war destfile="${name}.war"
         webxml="${web.dir}/WEB-INF/web.xml">
         <fileset dir="${web.dir}">
            <include name="**/*.*"/>
         </fileset>
      </war>
      <copy todir="${deploy.path}" preservelastmodified="true">
         <fileset dir=".">
            <include name="*.war"/>
         </fileset>
      </copy>
   </target>
    

   <target name="clean" description="Clean output directories">
      <delete>
         <fileset dir="${build.dir}">
            <include name="**/*.class"/>
         </fileset>
      </delete>
   </target>
<!-- ============================================================ -->
<!-- Tomcat tasks -->
<!-- ============================================================ -->

<path id="catalina-ant-classpath">
<!-- We need the Catalina jars for Tomcat -->
<!--  * for other app servers - check the docs -->
   <fileset dir="${appserver.lib}">
      <include name="catalina-ant.jar"/>
   </fileset>
</path>

<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
   <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
   <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
   <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
   <classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
   <classpath refid="catalina-ant-classpath"/>
</taskdef>

<target name="reload" description="Reload application in Tomcat">
   <reload url="${tomcat.manager.url}"username="${tomcat.manager.username}"
      password="${tomcat.manager.password}" path="/${name}"/>
</target>
</project>

Bu örnekte, Tomcat'i uygulama sunucumuz olarak kullandık. İlk olarak, yapı özellikleri dosyasında bazı ek özellikler tanımladık.

  • appserver.home Tomcat uygulama sunucusunun kurulum yolunu gösterir.

  • appserver.lib Tomcat kurulum klasöründeki kitaplık dosyalarına işaret eder.

  • deploy.path değişken şimdi Tomcat'teki webapp klasörünü gösteriyor.

Tomcat'teki uygulamalar Tomcat yönetici uygulaması kullanılarak durdurulabilir ve başlatılabilir. Yönetici uygulamasının URL'si, kullanıcı adı ve parola da build.properties dosyasında belirtilir. Ardından, aşağıdakileri içeren yeni bir CLASSPATH beyan ederizcatalina-ant.jar. Bu jar dosyası, Tomcat görevlerini Apache Ant aracılığıyla yürütmek için gereklidir.

Catalina-ant.jar aşağıdaki görevleri sağlar:

Özellikleri Açıklama
InstallTask Bir web uygulaması kurar. Sınıf Adı: org.apache.catalina.ant.InstallTask
ReloadTask Bir web uygulamasını yeniden yükleyin. Sınıf Adı: org.apache.catalina.ant.ReloadTask
Liste Görev Tüm web uygulamalarını listeler. Sınıf Adı: org.apache.catalina.ant.ListTask
StartTask Bir web uygulaması başlatır. Sınıf Adı: org.apache.catalina.ant.StartTask
StopTask Bir web uygulamasını durdurur. Sınıf Adı: org.apache.catalina.ant.StopTask
ReloadTask Durmadan bir web uygulamasını yeniden yükler. Sınıf Adı: org.apache.catalina.ant.ReloadTask

Yeniden yükleme görevi aşağıdaki ek parametreleri gerektirir:

  • Yönetici uygulamasının URL'si
  • Web uygulamasını yeniden başlatmak için kullanıcı adı
  • Web uygulamasını yeniden başlatmak için şifre
  • Yeniden başlatılacak web uygulamasının adı

Verelim deploy-warkomutunu web uygulamasını Tomcat webapps klasörüne kopyalayın ve ardından Faks Web uygulamasını yeniden yüklememize izin verin. Aşağıdaki sonuç, Ant dosyasını çalıştırmanın sonucudur:

C:\>ant deploy-war
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 6.3 seconds

C:\>ant reload
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 3.1 seconds

Yukarıdaki görev çalıştırıldığında, web uygulaması konuşlandırılır ve web uygulaması yeniden yüklenir.

Java kodunu yürütmek için Ant'ı kullanabilirsiniz. Aşağıdaki örnekte, java sınıfı bir bağımsız değişkeni (yöneticinin e-posta adresi) alır ve bir e-posta gönderir.

public class NotifyAdministrator
{
   public static void main(String[] args)
   {
      String email = args[0];
      notifyAdministratorviaEmail(email);
      System.out.println("Administrator "+email+" has been notified");
   }
   public static void notifyAdministratorviaEmail(String email
   { 
	   //......
   }
}

İşte bu java sınıfını çalıştıran basit bir yapı.

<?xml version="1.0"?>
<project name="sample" basedir="." default="notify">
   <target name="notify">
      <java fork="true" failonerror="yes" classname="NotifyAdministrator">
         <arg line="[email protected]"/>
      </java>
   </target>
</project>

Yapı yürütüldüğünde, aşağıdaki sonucu verir:

C:\>ant
Buildfile: C:\build.xml

notify: [java] Administrator [email protected] has been notified

BUILD SUCCESSFUL
Total time: 1 second

Bu örnekte, java kodu basit bir şey yapar - bir e-posta göndermek. Bunu yapmak için yerleşik Ant görevini kullanabilirdik. Ancak, artık fikriniz olduğuna göre, derleme dosyanızı karmaşık şeyler yapan java kodunu çağıracak şekilde genişletebilirsiniz, örneğin: kaynak kodunuzu şifreler.

Eclipse'i zaten indirip yüklediyseniz, başlamak için yapmanız gereken çok az şey vardır. Eclipse, Ant eklentisi ile önceden paketlenmiş olarak gelir ve kullanıma hazırdır.

Ant'ı Eclipse'e entegre etmek için basit adımları izleyin.

  • Build.xml dosyasının java projenizin bir parçası olduğundan ve projenin dışındaki bir konumda bulunmadığından emin olun.

  • Takip ederek Karınca Görünümünü etkinleştirin Window > Show View > Other > Ant > Ant.

  • Proje Gezgini'ni açın, build.xml dosyasını Karınca Görünümü'ne sürükleyin.

Karınca görünümünüz şuna benzer:

Hedeflere tıkladığınızda, inşa / temizle / kullanım, Ant'ı hedefle çalıştırır.

"Faks" ı tıklamak varsayılan hedefi çalıştıracaktır - usage.

Ant Eclipse eklentisi ayrıca build.xml dosyalarını düzenlemek için iyi bir düzenleyiciyle birlikte gelir. Düzenleyici, build.xml şemasının farkındadır ve kod tamamlama konusunda size yardımcı olabilir.

Ant düzenleyicisini kullanmak için build.xml dosyanızı (Proje Gezgini'nden) sağ tıklayın ve Birlikte Aç> Ant Düzenleyicisi'ni seçin. Ant editörü şuna benzer görünmelidir:

Ant editörü, hedefleri sağ tarafta listeler. Hedef listesi, doğrudan belirli bir hedefi düzenlemeye atlamanıza izin veren bir yer imi görevi görür.

JUnit, Java tabanlı geliştirmeler için yaygın olarak kullanılan birim testi çerçevesidir. Kullanımı ve genişletmesi kolaydır. Bir dizi JUnit uzantısı mevcuttur. JUnit'e aşina değilseniz, www.junit.org adresinden indirmeli ve kılavuzunu okumalısınız.

Bu bölüm, Ant kullanarak JUnit testlerinin nasıl yürütüleceğini gösterir. Ant, JUnit göreviyle bunu kolaylaştırır.

JUnit görevinin öznitelikleri aşağıda sunulmuştur:

Özellikleri Açıklama
dir VM'nin nereden çağrılacağı. Bu ne zaman göz ardı edilirfork devre dışı bırakıldı.
jvm JVM'yi çağırmak için kullanılan komut. Bu ne zaman göz ardı edilirfork devre dışı bırakıldı.
çatal Testi ayrı bir JVM'de çalıştırır
hata özelliği Bir JUnit hatası varsa ayarlanacak mülkün adı
Arıza özelliği JUnit hatası varsa ayarlanacak özelliğin adı
Haltonerror Bir test hatası oluştuğunda yürütmeyi durdurur
halton hatası Bir hata oluştuğunda yürütmeyi durdurur
baskı özeti Ant'a her test için basit istatistikler göstermesini tavsiye eder
showoutput Ant'a, çıktıyı günlüklerine ve biçimlendiricilerine göndermesini tavsiye eder
tempdir Ant'ın kullanacağı geçici dosyanın yolu
zaman aşımı Bu ayardan daha uzun süren testlerden çıkar (milisaniye cinsinden).

Temasına devam edelim Hello World Web uygulamasını fakslayın ve bir JUnit hedefi ekleyin.

Aşağıdaki örnek, basit bir JUnit test yürütmesini gösterir:

<target name="unittest">
   <junit haltonfailure="true" printsummary="true">
      <test name="com.tutorialspoint.UtilsTest"/>
   </junit>
</target>

Bu örnek, com.tutorialspoint.UtilsTest junit sınıfında JUnit'in çalıştırılmasını gösterir. Yukarıdaki kodu çalıştırmak aşağıdaki çıktıyı üretir:

test:
[echo] Testing the application
[junit] Running com.tutorialspoint.UtilsTest
[junit] Tests run: 12, Failures: 0, Errors: 0, Time elapsed: 16.2 sec
BUILD PASSED

Ant önceden tanımlanmış bir dizi görevle birlikte gelir, ancak aşağıdaki örnekte gösterildiği gibi kendi görevlerinizi oluşturabilirsiniz.

Özel Karınca Görevleri, org.apache.tools.ant.Tasksınıf ve execute () yöntemini genişletmelidir. Aşağıda basit bir örnek verilmiştir:

package com.tutorialspoint.ant;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
public class MyTask extends Task {
   String message;
   public void execute() throws BuildException {
      log("Message: " + message, Project.MSG_INFO);
   }
   public void setMessage(String message) {
      this.message= message;
   }
}

Özel görevi yürütmek için aşağıdakileri Hello World Faks web uygulaması:

<target name="custom">
   <taskdef name="custom" classname="com.tutorialspoint.ant.MyTask" />
   <custom message="Hello World!"/>
</target>

Yukarıdaki özel görevin yürütülmesi, 'Merhaba Dünya!' Mesajını yazdırır.

c:\>ant custom
test:
[custom] Message : Hello World!
elapsed: 0.2 sec
BUILD PASSED

Bu sadece basit bir örnek, yapım ve dağıtım sürecinizi geliştirmek için istediğiniz her şeyi yapmak için Ant'ın gücünü kullanabilirsiniz.

Yazdır