본문 바로가기

Dev.../플밍 관련 자료

[펌] Java based build tool - Ant

 

이곳에 가시면 다운로드 하실 수 있습니다.

http://www.apache.org/dist/ant/

 

Ant의 주요 기능

◆ 자바 소스 파일 컴파일

◆ jar, war, ear, zip 파일의 생성

◆ javadoc을 실행하여 도움말 생성(api)

◆ 유닉스에서처럼 파일이나 폴더에 퍼미션 설정

◆ 외부 프로그램의 실행

 

1. Ant가 모쥐?

☞ XML을 이용하여 클래스 패스에 클래스를 추가하거나 소스 파일 컴파일, jar 파일로 묶는 작업, 묶은 jar 파일을 특정 디렉토리로 이동시키고 수정된 내용을 javadoc으로 문서화 시키는 등의 작업을 한번에 수행할 수 있는 making Tool 

 

2. Ant를 어케 설치하나 ㅡ.ㅡa

☞ 설치에는 그다지 복잡한 사항이 없다. 일단 사이트에서 다운로드 받은 압축 파일(jakarta-ant-1.4.1-bin.zip)을 적당한 위치에 풀어놓기만 하면 된다. 그리고 몇 가지 환경 설정을 추가로 해줄 필요가 있다.

설치한 폴더가 c:\dev\tools\jakarta-ant-1.4.1 일 경우 [그림 1]처럼 디렉토리와 파일들이 생성된다.

/bin : Ant 실행을 위한 배치 파일이 있다(유닉스나 리눅스의 경우 셸 파일 사용)
/lib : jar 파일들
/docs : 매뉴얼과 API 문서가 있다.

 

[그림 1] 설치 후 디렉토리 및 파일

 

윈도우 환경에서는 환경 설정을 다음과 같이 해주면 된다.

set ANT_HOME=c:\dev\tools\apache-ant-1.6.1
set JAVA_HOME=c:\jdk1.3.1
set PATH=%PATH%;%ANT_HOME%\bin

 

3. 이제 Test를 준비하자~!

먼저 적절한 폴더 설정과 소스 파일이 당연히 필요하다. 그림과 같이 c:\\ant_test 폴더를 만들고 하위 폴더로 classes, doc, jar, src 폴더를 생성한다. 그리고 src 폴더 밑에는 HelloAnt.java 파일을 하나 생성한다.

 

[그림 2] HelloAnt.java 파일을 만든다

 

간단하게 아래정도만 코딩한다.

public class HelloAnt {
  public static void main(String[] args) {
    System.out.println("Hello Ant!");
  }
}

 

4. Build.xml 작성하기

Ant를 실행하면 초기값으로 현재 폴더에 있는 build.xml 파일을 찾아서 빌드하게 된다. 여기에서는 build.xml 파일의 위치를 "C:\ant_test" 밑에 두었다.

 


[그림 3] build.xml 생성
 
이제부터는 build.xml 파일을 살펴볼 것이다. 혹시 XML에 익숙치 않다고 하더라도 겁먹지 말고 차근차근 살펴보도록 하자. 만약 아래의 XML 파일을 사용할 때는 반드시 주석문을 제거하고 사용해야 한다. 그렇지 않으면 Ant를 실행할 때 에러가 발생한다.
 
<?xml version="1.0"?><!--name : 프로젝트 이름default : 초기치로 설정되는 작업, 아무 것도 지정하지 않고 실행하면 이 작업을 수행basedir : 프로젝트에 대한 기준 폴더를 지정property : 프로젝트에서 사용할 각 폴더들의 위치를 지정${basedir} : 이미 앞에서 설정된 값을 읽어온다--><project name="HelloAnt" default="javadoc" basedir="." ><property name="src.dir" value="${basedir}/src" /><property name="classes.dir" value="${basedir}/classes" /><property name="jar.dir" value="${basedir}/jar" /><property name="javadoc.dir" value="${basedir}/doc" /><!--target : 각각의 타겟을 지정, 타겟이란 프로젝트를 이루는 하나 하나의 작업 단위srcdir : 컴파일 하기 위한 자바 소스 파일의 위치를 지정destdir : 어느 폴더에 클래스 파일들을 위치 시킬지 지정--><target name="compile" ><javac srcdir="${src.dir}" destdir="${classes.dir}" /></target><!--jar : 파일을 만든다depends : compile 정상적으로 수행되어야만 진행jarfile : jar 파일의 위치와 파일 이름 지정basedir : jar로 묶을 클래스 파일의 위치includes : 모든 폴더에서 클래스 파일들만 포함--><target name="jar" depends="compile"><jar jarfile="${jar.dir}/hello.jar"basedir="${classes.dir}"includes="**/*.class"/></target><!--javadoc을 실행depends : compile과 jar 수행이 정상적으로 끝나야만 실행sourcepath : 소스 폴더 지정sourcefiles : 소스 파일 지정windowtitle : 제목 지정destdir : 파일 생성후 저장할 폴더 지정--><target name="javadoc" depends="compile, jar" ><javadocsourcepath="${src.dir}"sourcefiles="${src.dir}/HelloAnt.java"windowtitle="HelloAnt API"destdir="${javadoc.dir}"/></target><!--소스 코드를 제외한 모든 작업 파일들과 폴더를 삭제한다--><target name="clean" ><delete dir="${classes.dir}/classes/*"/><delete dir="${jar.dir}/jar/*"/><delete dir="${javadoc.dir}/doc/*"/></target></project>
이런 파일을 한번만 만들어 두면 다른 프로젝트를 할 때도 조금씩 수정해서 계속 써먹을 수 있다. 재사용(reuse)이란 그래서 좋은 것이다.
 

5. Ant 실행하기
 
그럼 어떻게 실행하면 될까? 먼저 실행할 때 필요한 옵션으로는 어떤 것들이 있는지 알아보자. 도스 창 프롬프트에서 'ant ?help' 라고 입력한다
 
C:\ant_test>ant -helpant [options] [target [target2 [target3] ...]]Options :  -help                   도움말을 보여준다.  -projecthelp            프로젝트에 필요한 도움을 보여준다  -version                현재 ant 버전을 보여준다  -quiet                  build하는 과정을 디스플레이 하지 않는다.  -verbose                verbose모드를 실시한다.  -debug                  debugging 정보를 보여준다.  -emacs                  로깅 정보를 만들어낸다  -logfile file           주어진 파일로 로그를 출력한다.  -logger classname       클래스를 이용하여 로깅을 수행한다.  -listener classname     리스너클래스를 추가한다.  -buildfile file         대상 build파일을 정의한다.  -D<property>=<value>    build설정에 필요한 프로퍼티를 사용한다.  -find file              루트로부터 buildfile을 찾아서 실행한다.
앞에서 만든 빌드 파일을 실행한 결과는 다음과 같다.
실행은 build.xml 파일이 있는 폴더에서 도스 창을 열고 'ant'라고만 입력하면 된다. 
C:\ant_test>antBuildfile: build.xmlcompile:jar:javadoc:  [javadoc] Generating Javadoc  [javadoc] Javadoc execution  [javadoc] Loading source file C:\ant_test\src\HelloAnt.java...  [javadoc] Constructing Javadoc information...  [javadoc] Building tree for all the packages and classes...  [javadoc] Building index for all the packages and classes...  [javadoc] Building index for all classes...BUILD SUCCESSFULTotal time: 3 secondsC:\ant_test>
폴더를 살펴보면 각 폴더에 클래스 파일들, jar 파일, HTML 문서가 생성된 것을 확인할 수 있다.
출처 : 한빛미디어