Ant - การใช้งานบรรจุภัณฑ์

เราได้เรียนรู้แง่มุมต่างๆของ Ant โดยใช้ไฟล์ Hello World แฟกซ์เว็บแอปพลิเคชันเป็นบิตและชิ้น

ตอนนี้ได้เวลารวบรวมทุกอย่างเข้าด้วยกันเพื่อสร้างไฟล์ build.xml ที่สมบูรณ์และสมบูรณ์ พิจารณาbuild.properties และ build.xml ไฟล์ดังนี้ -

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>

ในตัวอย่างนี้ -

  • ก่อนอื่นเราประกาศเส้นทางไปยังโฟลเดอร์ webapps ใน Tomcat ในไฟล์คุณสมบัติการสร้างเป็นไฟล์ deploy.path ตัวแปร.

  • นอกจากนี้เรายังประกาศโฟลเดอร์ต้นทางสำหรับไฟล์ java ในไฟล์ src.dir ตัวแปร.

  • จากนั้นเราจะประกาศโฟลเดอร์ต้นทางสำหรับไฟล์เว็บในไฟล์ web.dir ตัวแปร. javadoc.dir เป็นโฟลเดอร์สำหรับจัดเก็บเอกสาร java และ build.dir เป็นพา ธ สำหรับจัดเก็บไฟล์เอาต์พุตบิลด์

  • จากนั้นเราจะประกาศชื่อของเว็บแอปพลิเคชันซึ่งก็คือ fax ในกรณีของเรา

  • เรายังกำหนดพา ธ คลาสมาสเตอร์ซึ่งมีไฟล์ JAR อยู่ในโฟลเดอร์ WEB-INF / lib ของโปรเจ็กต์

  • นอกจากนี้เรายังรวมไฟล์คลาสที่มีอยู่ในไฟล์ build.dir ในพา ธ มาสเตอร์คลาส

  • เป้าหมาย Javadoc สร้าง javadoc ที่จำเป็นสำหรับโปรเจ็กต์และเป้าหมายการใช้งานถูกใช้เพื่อพิมพ์เป้าหมายทั่วไปที่มีอยู่ในไฟล์บิลด์

ตัวอย่างข้างต้นแสดงเป้าหมายการปรับใช้สองเป้าหมาย: deploy และ deploywar.

เป้าหมายการปรับใช้จะคัดลอกไฟล์จากไดเร็กทอรีเว็บไปยังไดเร็กทอรีการปรับใช้โดยสงวนการประทับวันที่เวลาที่แก้ไขล่าสุด สิ่งนี้มีประโยชน์เมื่อปรับใช้กับเซิร์ฟเวอร์ที่รองรับการปรับใช้แบบร้อน

เป้าหมายที่สะอาดจะล้างไฟล์ที่สร้างไว้ก่อนหน้านี้ทั้งหมด

เป้าหมาย deploywar สร้างไฟล์ war จากนั้นคัดลอกไฟล์ war ไปยังไดเร็กทอรี deploy ของแอ็พพลิเคชันเซิร์ฟเวอร์