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 폴더.