ANT를 생활 속으로…
ANT는 컴파일을 도와주는 도구가 아닙니다. ANT는 편리하게 사용할 매크로와 같은 기능을 갖고 있습니다. 예를 들어 제 프로젝트의 초기화 ANT를 볼까요.
<?xml version="1.0"?>
<project name="bside" default="" basedir=".">
<target name="init">
<mkdir dir="${basedir}/doc" />
<mkdir dir="${basedir}/lib" />
<mkdir dir="${basedir}/src/embed" />
<mkdir dir="${basedir}/src/remote" />
<echo file="${basedir}/src/Main.as" encoding="UTF-8">package{
import com.bsidesoft.BScore.*;
[SWF(backgroundColor="#ffffff", frameRate="110", width="1000", height="700")]
public class Main extends CS{
include "embed/embed.as";
public function Main():void{
super();
}
override protected function _init():void{
}
}
}
</echo>
</target>
</project>
프로젝트에서 최초 필요한 폴더를 만들고 Main클래스를 생성하는 역활을 합니다.
ANT는 여러가지 태스크로 구성되는 매크로 입니다. 태스크란 ANT가 처리하는 명령으로 폴더 생성, 삭제, 파일생성, zip파일 압축풀기 등 파일시스템이나 압축은 물론 wav파일을 두번 반복하도록 수정하기, 이미지 리사이즈하기, 특정 프로그램 실행하기 등도 할 수 있습니다.
이러한 태스크는 ANT가 기본으로 지원하는게 있고 추가적으로 서드파티에서 더 많은 태스크를 생성하여 제공하기도 합니다. flex의 경우 mxmlc컴파일 및 compc에 대한 태스크를 제공합니다. 아파치제단의 제품답게 자사의 자카르타프로젝트의 수많은 산출물과 연동되는 태스크도 한가득 있습니다.
http://ant.apache.org/manual/index.html
위의 주소에서 기본적인 앤트 태스크를 확인할 수 있습니다. 각 태스크는 사용방법이 간단합니다.
간단히 zip을 이용해봅시다. 시나리오는 module프로젝트에서 swc를 생성하고 main프로젝트에서 이를 런타임에 로딩해서 사용하는 경우라 가정하겠습니다.
그러면 module프로젝트에서 생성한 swc를 zip압축을 풀어 library.swf를 main프로젝트의 원하는 위치에 카피해야합니다. 이를 ANT로 구현하면 다음과 같습니다.
<target name="moduleCopy">
<delete file="${basedir}/remote/library.swf" />
<delete file="${basedir}/bin-debug/remote/library.swf" />
<unzip src="c:\flash\project\module\bin\module.swc" dest="${basedir}/remote">
<patternset>
<include name="library.swf" />
</patternset>
</unzip>
</target>
이게 머 설명할게 있나요. 위에 줄부터 그냥 읽으세요. swf파일 두 개 지우고, 모듈프로젝트의 swc를 리모트폴더에 풀어준다는 뜻입니다.
이렇듯 우리가 노가다로 할 업무를 잘 정리해서 순서대로 써보면 그게 바로 ANT입니다.
예를 들어 서버에 Main.swf를 올려봅시다. 아마도 ftp를 이용한다면 다음과 같은 형태가 됩니다.
<target name="ftpDeploy">
<ftp server="192.168.0.1" remotedir="/html/swf" userid="admin" password="admin123">
<fileset dir="${basedir}/bin-release">
<include name="Main.swf" />
</fileset>
</ftp>
</target>
결론
결국 ANT를 너무 어렵게 생각하고 있는게 바로 ANT를 잘 쓰지 않고 계시는 분들의 공통된 문제입니다. 다음과 같은 순서로 ANT를 사용해보세요.
- 자신이 윈도우에서 하고 있는 일을 순서대로 정리한다.
- build.xml을 만들어 그 내용을 순서대로 태그로 써본다.
- 적당한 태그를 알 수 없다면 위의 주소에서 관련된 태스크를 찾아본다.
관련된 글:
정말 최대한 자동화할 수 있는 부분들은 다 자동화하는게 좋을듯.
잘 읽엇습니다~!
사람이 반복하면 실수가 있을뿐 ^^
앤트가 이제 명확히 이해가 되요 ^-^ ~!!
황당하고 엄청난 ant스크립트도 많지만 중요한건 역시 자기에게 필요한 만큼 자동화하려는 노력인거 같아.