Ant-빌드 프로젝트
Ant의 데이터 유형에 대해 배웠으므로 이제 그 지식을 실행에 옮겨야합니다. 이 장에서 프로젝트를 구축 할 것입니다. 이 장의 목적은 Java 클래스를 컴파일하여 WEB-INF \ classes 폴더에 배치하는 Ant 파일을 빌드하는 것입니다.
다음 프로젝트 구조를 고려하십시오-
데이터베이스 스크립트는 db 폴더.
자바 소스 코드는 src 폴더.
이미지, js, META-INF, 스타일 (css)은 war 폴더.
JSP는 jsp 폴더.
타사 jar 파일은 lib 폴더.
Java 클래스 파일은 WEB-INF\classes 폴더.
이 프로젝트는 Hello World 이 자습서의 나머지 부분을위한 팩스 응용 프로그램입니다.
C:\work\FaxWebApplication>tree
Folder PATH listing
Volume serial number is 00740061 EC1C:ADB1
C:.
+---db
+---src
. +---faxapp
. +---dao
. +---entity
. +---util
. +---web
+---war
+---images
+---js
+---META-INF
+---styles
+---WEB-INF
+---classes
+---jsp
+---lib
이 프로젝트에 필요한 build.xml은 다음과 같습니다. 그것을 하나씩 고려해 봅시다.
<?xml version = "1.0"?>
<project name = "fax" basedir = "." default = "build">
<property name = "src.dir" value = "src"/>
<property name = "web.dir" value = "war"/>
<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 = "build" description = "Compile source tree java files">
<mkdir dir = "${build.dir}"/>
<javac destdir = "${build.dir}" source = "1.5" target = "1.5">
<src path = "${src.dir}"/>
<classpath refid = "master-classpath"/>
</javac>
</target>
<target name = "clean" description = "Clean output directories">
<delete>
<fileset dir = "${build.dir}">
<include name = "**/*.class"/>
</fileset>
</delete>
</target>
</project>
먼저 소스, 웹 및 빌드 폴더에 대한 몇 가지 속성을 선언하겠습니다.
<property name = "src.dir" value = "src"/>
<property name = "web.dir" value = "war"/>
<property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>
이 예에서-
src.dir Java 소스 파일을 찾을 수있는 프로젝트의 소스 폴더를 나타냅니다.
web.dir JSP, web.xml, css, javascript 및 기타 웹 관련 파일을 찾을 수있는 프로젝트의 웹 소스 폴더를 나타냅니다.
build.dir 프로젝트 컴파일의 출력 폴더를 나타냅니다.
속성은 다른 속성을 참조 할 수 있습니다. 위의 예에서 볼 수 있듯이build.dir 속성은 web.dir 특성.
이 예에서 src.dir 프로젝트의 소스 폴더를 나타냅니다.
우리 프로젝트의 기본 대상은 compile표적. 하지만 먼저clean 표적.
이름에서 알 수 있듯이 깨끗한 대상은 빌드 폴더의 파일을 삭제합니다.
<target name = "clean" description = "Clean output directories">
<delete>
<fileset dir = "${build.dir}">
<include name = "**/*.class"/>
</fileset>
</delete>
</target>
마스터 클래스 경로는 클래스 경로 정보를 보유합니다. 이 경우 빌드 폴더의 클래스와 lib 폴더의 jar 파일이 포함됩니다.
<path id = "master-classpath">
<fileset dir = "${web.dir}/WEB-INF/lib">
<include name = "*.jar"/>
</fileset>
<pathelement path = "${build.dir}"/>
</path>
마지막으로 파일을 빌드 할 빌드 대상입니다. 우선 빌드 디렉토리가 존재하지 않는 경우 생성합니다. 그런 다음 javac 명령을 실행합니다 (대상 컴파일로 jdk1.5 지정). javac 작업에 대한 소스 폴더와 클래스 경로를 제공하고 빌드 폴더에 클래스 파일을 드롭하도록 요청합니다.
<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>
이 파일에서 Ant를 실행하면 Java 소스 파일이 컴파일되고 빌드 폴더에 클래스가 배치됩니다.
다음 결과는 Ant 파일을 실행 한 결과입니다.
C:\>ant
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 6.3 seconds
파일이 컴파일되고 build.dir 폴더.