본문 바로가기

WebServer

Ant build.xml 구조 및 할 수 있는 일

Ant(Another Neat Tool)는 자바 기반의 빌드 자동화 도구다. Ant는 build.xml을 기반으로 설정하고 실행한다. xml을 이용하고 있기때문에 이해가기 쉽다. xml에 익숙한 사람이라면 금방 눈치챌 수 있을 것이다. Ant와 make를 비교한 책이 있는데 java입장에서는 Ant가 편리할 수 밖에 없기때문에 비교가 적절하지 않은 것같다.

1. build.xml의 구조
build.xml은 프로젝트(project), 타겟(target), 태스크(task)들의 집합체이다. 프로젝트 하나에 타겟이 n개 있고 또 각각의 타겟은 태스크 n개로 구성된다. 

 
프로젝트(Project)
빌드 파일에는 반드시 하나의 프로젝트가 있어야 한다. 프로젝트는 타겟들의 집합체다. 다음의 3가지 속성을 가지고 있다.
속성  설명 타입  필수 
 name  프로젝트 이름  String   no 
 default  지정한 타겟이 없을 때 자동으로 실행할 디폴트 타겟 이름   String   yes 
 basedir  빌드 파일 내에서 경로 지정의 기본이 되는 디렉토리   Path   no 

타겟(Target)
타겟은 다른 타겟과 의존성을 가질 수 있다. 타겟의 속성은 다음과 같다.
속성  설명 타입  필수 
 name  타겟 이름  String  yes
 depends  의존성이 있는 타겟 목록을 ','(콤마)로 구분한다.  String  no
 if  타겟이 실행되려면 설정해야 할 프로퍼티 이름 Property명  no
 unless  타겟이 실행되려면 설정되지 말아야 할 프로퍼티 이름 Property명  no
 description  타겟의 설명  String  no

태스크(Task)
태스크는 특정한 일을 수행하는 컴포넌트들이다. 일련의 작업을 수행할 수 있는 코드 단위라고 보면 된다. 태스크의 예로는 java, javac, jar, mkdir, copy, exec등이 있다. 다음과 같은 구조로 되어 있다.

<task_name attribute="value1" attribute2="value2" ... />

태스크의 종류로는 Ant를 설치하면 바로 사용할 수 있는 핵심(Core) 태스크와 외부 라이브러리나 프로그램을 필요로 하는 옵셔널(Optional) 태스크, Ant 프로젝트 외부에서 개발하여 Ant와 통합할 수 있는 서드 파티(Third party) 태스크, 그리고 사용자가 작성하고 컴파일하여 사용할 수 있는 커스텀(Custom) 태스크가 있다.


2. Ant가 할 수 있는 일

Ant는 단순한 빌드 도구로 시작했지만 이제는 빌드 뿐만 아니라 테스트, 배포 등을 한번의 프로세스로 끝마칠 수 있게 도와주는 기능들이 제공되고 있다. 초기에는 Jajarta의 서브 프로젝트였다가 메인 프로젝트로 승격되어 현재는 ant.apache.org에서 볼 수 있다. Ant는 빌드, 테스트(JUnit), 배포본 작성(jar, tar, zip, war 등), CVS 등을 지원한다. 이런 기능이 있다고 알았으니 이제 활용을 해보자.

Ant 홈: http://ant.apache.org/  

'WebServer' 카테고리의 다른 글

HTTP 완벽 가이드 1일차  (0) 2015.11.29
Subversion/SVN 설정시 branches, tags, trunk 에 대한 개념  (0) 2011.11.02
아파치 톰켓 연동하기  (0) 2011.11.02