Ant - การปรับใช้แอปพลิเคชัน
ในบทที่แล้วเราได้เรียนรู้วิธีการจัดแพ็คเกจแอปพลิเคชันและปรับใช้กับโฟลเดอร์
ในบทนี้เราจะปรับใช้เว็บแอปพลิเคชันโดยตรงไปยังโฟลเดอร์การปรับใช้แอ็พพลิเคชันเซิร์ฟเวอร์จากนั้นเราจะเพิ่มเป้าหมาย Ant สองสามเป้าหมายเพื่อเริ่มและหยุดบริการ ให้เราดำเนินการต่อด้วยไฟล์Hello Worldแอปพลิเคชันเว็บแฟกซ์ นี่เป็นความต่อเนื่องของบทก่อนหน้าส่วนประกอบใหม่จะเน้นในbold.
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>
ในตัวอย่างนี้เราใช้ Tomcat เป็นแอปพลิเคชันเซิร์ฟเวอร์ของเรา ขั้นแรกในไฟล์คุณสมบัติการสร้างเราได้กำหนดคุณสมบัติเพิ่มเติมบางอย่าง
appserver.home ชี้ไปที่พา ธ การติดตั้งไปยังแอ็พพลิเคชันเซิร์ฟเวอร์ Tomcat
appserver.lib ชี้ไปที่ไฟล์ไลบรารีในโฟลเดอร์การติดตั้ง Tomcat
deploy.path ตัวแปรชี้ไปที่โฟลเดอร์ webapp ใน Tomcat
แอปพลิเคชันใน Tomcat สามารถหยุดและเริ่มได้โดยใช้แอปพลิเคชัน Tomcat manager URL สำหรับแอ็พพลิเคชันผู้จัดการชื่อผู้ใช้และรหัสผ่านยังระบุไว้ในไฟล์ build.properties ต่อไปเราจะประกาศ CLASSPATH ใหม่ที่มีไฟล์catalina-ant.jar. ไฟล์ jar นี้จำเป็นสำหรับการรันงาน Tomcat ผ่าน Apache Ant
catalina-ant.jar จัดเตรียมงานต่อไปนี้ -
ซีเนียร์ | คุณสมบัติและคำอธิบาย |
---|---|
1 | InstallTask ติดตั้งเว็บแอปพลิเคชัน ชื่อคลาส: org.apache.catalina.ant.InstallTask |
2 | ReloadTask โหลดแอปพลิเคชันบนเว็บซ้ำ ชื่อคลาส: org.apache.catalina.ant.ReloadTask |
3 | ListTask แสดงรายการเว็บแอปพลิเคชันทั้งหมด ชื่อคลาส: org.apache.catalina.ant.ListTask |
4 | StartTask เริ่มโปรแกรมประยุกต์บนเว็บ ชื่อคลาส: org.apache.catalina.ant.StartTask |
5 | StopTask หยุดการใช้งานเว็บ ชื่อคลาส: org.apache.catalina.ant.StopTask |
6 | ReloadTask โหลดแอปพลิเคชันบนเว็บซ้ำโดยไม่หยุด ชื่อคลาส: org.apache.catalina.ant.ReloadTask |
งานรีโหลดต้องการพารามิเตอร์เพิ่มเติมดังต่อไปนี้ -
- URL ไปยังแอปพลิเคชันผู้จัดการ
- ชื่อผู้ใช้เพื่อเริ่มต้นโปรแกรมประยุกต์บนเว็บ
- รหัสผ่านเพื่อรีสตาร์ทเว็บแอปพลิเคชัน
- ชื่อของเว็บแอปพลิเคชันที่จะเริ่มต้นใหม่
ให้เราออก deploy-warคำสั่งเพื่อคัดลอก webapp ไปยังโฟลเดอร์ Tomcat webapps จากนั้นให้เราโหลดแอปพลิเคชัน Fax Web ใหม่ ผลลัพธ์ต่อไปนี้เป็นผลมาจากการรันไฟล์ 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
เมื่อเรียกใช้งานข้างต้นเว็บแอปพลิเคชันจะถูกปรับใช้และโหลดแอปพลิเคชันเว็บใหม่