Ant - Menerapkan Aplikasi

Di bab sebelumnya, kita telah mempelajari cara memaketkan aplikasi dan menerapkannya ke folder.

Pada bab ini, kita akan menerapkan aplikasi web langsung ke folder penerapan server aplikasi, kemudian kita akan menambahkan beberapa target Ant untuk memulai dan menghentikan layanan. Mari kita lanjutkan denganHello Worldaplikasi web faks. Ini adalah kelanjutan dari bab sebelumnya, komponen baru disorotbold.

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>

Dalam contoh ini ,, kami telah menggunakan Tomcat sebagai server aplikasi kami. Pertama, di file properti build, kami telah menentukan beberapa properti tambahan.

  • Itu appserver.home menunjuk ke jalur instalasi ke server aplikasi Tomcat.

  • Itu appserver.lib menunjuk ke file perpustakaan di folder instalasi Tomcat.

  • Itu deploy.path variabel sekarang mengarah ke folder webapp di Tomcat.

Aplikasi di Tomcat dapat dihentikan dan mulai menggunakan aplikasi manajer Tomcat. URL untuk aplikasi manajer, nama pengguna dan kata sandi juga ditentukan dalam file build.properties. Selanjutnya, kami mendeklarasikan CLASSPATH baru yang berisicatalina-ant.jar. File jar ini diperlukan untuk menjalankan tugas Tomcat melalui Apache Ant.

Catalina-ant.jar menyediakan tugas-tugas berikut -

Sr.No. Properti & Deskripsi
1

InstallTask

Instal aplikasi web.

Nama Kelas: org.apache.catalina.ant.InstallTask

2

ReloadTask

Muat ulang aplikasi web.

Nama Kelas: org.apache.catalina.ant.ReloadTask

3

ListTask

Mencantumkan semua aplikasi web.

Nama Kelas: org.apache.catalina.ant.ListTask

4

StartTask

Memulai aplikasi web.

Nama Kelas: org.apache.catalina.ant.StartTask

5

StopTask

Menghentikan aplikasi web.

Nama Kelas: org.apache.catalina.ant.StopTask

6

ReloadTask

Memuat ulang aplikasi web tanpa berhenti.

Nama Kelas: org.apache.catalina.ant.ReloadTask

Tugas muat ulang membutuhkan parameter tambahan berikut -

  • URL ke aplikasi manajer
  • Nama pengguna untuk memulai ulang aplikasi web
  • Kata sandi untuk memulai ulang aplikasi web
  • Nama aplikasi web yang akan dimulai ulang

Mari kita keluarkan deploy-warperintah untuk menyalin aplikasi web ke folder webapps Tomcat dan kemudian mari kita muat ulang aplikasi Web Faks. Hasil berikut adalah hasil dari menjalankan file Ant -

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

Setelah tugas di atas dijalankan, aplikasi web diterapkan dan aplikasi web dimuat ulang.