Karınca - Ambalaj Uygulamaları

Ant'ı kullanarak Ant'ın farklı yönlerini öğrendik. Hello World Bit ve parçalı 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 yapı çı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 gerekli javadoc'u üretir ve kullanım hedefi, yapı 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.