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.