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가지 속성을 가지고 있다.
타겟(Target)
타겟은 다른 타겟과 의존성을 가질 수 있다. 타겟의 속성은 다음과 같다.
태스크(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/
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 |