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>
이 예에서-
먼저 빌드 속성 파일에서 Tomcat의 webapps 폴더 경로를 다음과 같이 선언합니다. deploy.path 변하기 쉬운.
또한 Java 파일의 소스 폴더를 src.dir 변하기 쉬운.
그런 다음 웹 파일의 소스 폴더를 web.dir 변하기 쉬운. javadoc.dir Java 문서를 저장하는 폴더입니다. build.dir 빌드 출력 파일을 저장하기위한 경로입니다.
그런 다음 웹 애플리케이션의 이름을 선언합니다. fax 우리의 경우.
또한 프로젝트의 WEB-INF / lib 폴더에있는 JAR 파일을 포함하는 마스터 클래스 경로를 정의합니다.
우리는 또한 build.dir 마스터 클래스 경로에서.
Javadoc 대상은 프로젝트에 필요한 javadoc을 생성하고 사용 대상은 빌드 파일에있는 공통 대상을 인쇄하는 데 사용됩니다.
위의 예는 두 가지 배포 대상을 보여줍니다. deploy 과 deploywar.
배포 대상은 마지막으로 수정 된 날짜 타임 스탬프를 유지하면서 웹 디렉터리에서 배포 디렉터리로 파일을 복사합니다. 이는 핫 배포를 지원하는 서버에 배포 할 때 유용합니다.
정리 대상은 이전에 빌드 된 모든 파일을 지 웁니다.
deploywar 대상은 war 파일을 빌드 한 다음 war 파일을 애플리케이션 서버의 배포 디렉토리에 복사합니다.