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 변수는 이제 Tomcat의 webapp 폴더를 가리 킵니다.
Tomcat의 애플리케이션은 Tomcat 관리자 애플리케이션을 사용하여 중지하고 시작할 수 있습니다. 관리자 애플리케이션의 URL, 사용자 이름 및 비밀번호도 build.properties 파일에 지정됩니다. 다음으로 다음을 포함하는 새로운 CLASSPATH를 선언합니다.catalina-ant.jar. 이 jar 파일은 Apache Ant를 통해 Tomcat 태스크를 실행하는 데 필요합니다.
catalina-ant.jar는 다음 작업을 제공합니다.
Sr. 아니. | 속성 및 설명 |
---|---|
1 | InstallTask 웹 애플리케이션을 설치합니다. 클래스 이름 : org.apache.catalina.ant.InstallTask |
2 | ReloadTask 웹 애플리케이션을 다시로드하십시오. 클래스 이름 : org.apache.catalina.ant.ReloadTask |
삼 | 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명령을 사용하여 웹 애플리케이션을 Tomcat webapps 폴더에 복사 한 다음 팩스 웹 애플리케이션을 다시로드하겠습니다. 다음 결과는 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
위의 작업이 실행되면 웹 응용 프로그램이 배포되고 웹 응용 프로그램이 다시로드됩니다.