Apache Ant is a Java based build tool. In theory it is kind of like make without make"s wrinkles. Why another build tool when there is already make, gnumake, nmake, jam, and others? Because all of those tools have limitations that Ant"s original author couldn"t live with when developing software across multiple platforms. . . . 이후 생략(http://jakarta.apache.org/ant/index.html 참고).Ant가 탄생하게 된 배경을 원문과 필자의 경험으로 간추려 보면 다음과 같다.
C나 C++를 사용하는 개발자들은 대부분 make나 nmake 또는 기타 다른 빌드 도구를 사용해왔다. 그렇다면 자바 개발자들은 어떤 빌드 도구를 사용할 것인가? 물론 make를 사용할 수 있다. 실제로 필자도 본인과 절친한 개발자가 만든 make 파일을 사용한 적이 있었다. 하지만 근본적으로 자바 언어를 위한 것이 아니기 때문에 불편하고 심지어는 필요한 기능이 없을 수도 있다. 하지만 이제는 걱정할 필요가 없다. 우리에겐 Ant가 있기 때문이다. Ant는 make를 비롯한 기존의 빌드 도구를 사용하면서 겪게 되는 많은 어려움을 줄여주면서 더 많은 기능을 제공한다. 물론 처음 배우는 개발자들에겐 약간의 시간을 투자해야 하는 부담이 가겠지만 일단 배우고 나면 그 효과는 투자한 시간에 비해 몇 배 이상이 될 것이다.Ant와 같은 빌드 도구를 사용하지 않을 경우 도스 창에서 클래스 패스에 클래스를 추가하거나 소스 파일 컴파일, jar 파일로 묶는 작업, 묶은 jar 파일을 특정 디렉토리로 이동시키고 수정된 내용을 javadoc으로 문서화 시키는 등의 작업은 소스가 수정될 때마다 한 단계씩 도스 창에서 모두 입력해야 한다. 하지만 Ant를 사용하면 마치 배치(bat) 파일을 실행한 것처럼 이와 같은 일련의 작업들을 Ant를 이용하여 단 한번에 수행할 수 있다. 정말 편리하지 않겠는가?
Ant: The Definitive Guide | ||
[그림 1] 설치 후 디렉토리 및 파일
set ANT_HOME=c:\dev\tools\jakarta-ant-1.4.1 set JAVA_HOME=c:\jdk1.3.1 set PATH=%PATH%;%ANT_HOME%\bin유닉스나 기타 다른 운영체제에서의 설정은 Ant 매뉴얼(http://jakarta.apache.org/ant/manual/install.html)을 참고하기 바란다.
[그림 2] HelloAnt.java 파일을 만든다
[그림 3] build.xml 생성
이런 파일을 한번만 만들어 두면 다른 프로젝트를 할 때도 조금씩 수정해서 계속 써먹을 수 있다. 재사용(reuse)이란 그래서 좋은 것이다.
C:\ant_test>ant -help ant [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앞에서 만든 빌드 파일을 실행한 결과는 다음과 같다. 실행은 build.xml 파일이 있는 폴더에서 도스 창을 열고 "ant"라고만 입력하면 된다.= build설정에 필요한 프로퍼티를 사용한다. -find file 루트로부터 buildfile을 찾아서 실행한다.
C:\ant_test>ant Buildfile: build.xml compile: 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 SUCCESSFUL Total time: 3 seconds C:\ant_test>폴더를 살펴보면 각 폴더에 클래스 파일들, jar 파일, HTML 문서가 생성된 것을 확인할 수 있다. 만일 Ant를 실행할 때 에러가 발생했다면 왜 에러가 발생하는 것인가? 앞에서 필자는 주석문을 제거하고 사용하기를 권고했다. 주석문을 제거하지 않고 사용할 경우 다음과 같은 에러 메시지를 출력하면서 Ant는 실패 결과를 알려준다.
C:\ant_test>ant Buildfile: build.xml BUILD FAILED C:\ant_test\build.xml:1: Character conversion error: "Malformed UTF-8 char -- is an XML encoding declaration missing?" (line number may be too low). Total time: 0 seconds C:\ant_test>위와 같이 에러가 발생했을 경우 메시지를 보면서 하나씩 해결해 나가도록 하자. 그리고 그 해결은 여러분 스스로 해보길 바란다.
이전 글 : 에릭하게만 시리즈 4 - 수치처리 파이썬 모듈에 대하여
다음 글 : Shared Source CLI 컴파일하기
최신 콘텐츠