ANT 사용하기 ... (2)

간단한 타겟 몇 가지를 살펴보겠습니다.

* 디렉토리, 파일 지우기

    <target name="clean">
        <echo message="Cleaning ${build.dir}" />
        <delete dir="${build.dir}" />
    </target>

위의 내용만 봐도 뭐 하는 녀석인지 바로보인다. 빌드를 시켰던 디렉토리를 깨끗하게 지우는 타겟이다.
기존의 내용이 남아있다면 나중에 괜한 고생을 하게 될지도 모른다. 특히, 프로젝트가 커졌을 경우 소스코드와 빌드내용이 동기화가 되지 않을 가능성이 높다.
이클립스의 clean 기능과 일맥상통한다. (해당 프로젝트의 빌드를 모두 지워버린다.)

* 파일 복사하기

다음으로 파일복사에 대해 간단히 살펴보자.
빌드된 파일을 특정한 디렉토리로 복사를 한다.
예를 들면 소스 컴파일이 성공을 했을경우 WAS 에 해당 클래스를 복사해 넣는것이다.

    <target name="deploy" depends="build">
        <copy todir="${deploy.dir}" overwrite="true">
            <fileset dir="${build.dir}" >
               <include name="**/*.class" /> 
            </fileset>
        </copy>
    </target>

눈에 띄는 옵션은 depends="build" 와 overwrite="true" 이다.
이 또한, 이름이 직관적이라 바로 알 수 있다. deploy 를 하기전에 먼저 build 를 하고 동일한 파일이 존재할 경우 덮어써라~ 이다.

* jar 파일 만들기

빌드가 이루어진 클래스 파일을 그냥 사용할 수도 있지만, 배포를 위해서 jar 파일로 묶어서 사용할 수도 있다.
라이브러리를 배포할 경우 많이 사용하게된다.

    <target name="deployjar" depends="build">
        <echo message="create jar file : ${dist.dir}/${deploy.name}.jar" />
        <jar jarfile="${dist.dir}/${deploy.name}.jar" update="true">
            <fileset dir="${build.dir}">
                <include name="**/*.*"/>
            </fileset>
        </jar>
    </target>

역시나 jar 를 만드는 것이니 jar 부분이 눈에 들어온다. 빌드가 된 파일셋을 이용하여 지정한 이름으로 jar 파일을 생성시킬 수 있다.

* 여러 target 한꺼번에 실행하기

말 그대로 이다. 지금까지는 한번에 하나의 타겟을 실행했었고, 해당 target 에서 depends 를 걸었었다.
여러 타겟 실행하는 것도 위의 예제들에 이미 힌트가 나와있다.
depends 에 여러 타겟을 컴마(,)를 구분자로 넣어놓으면 순차적으로 실행이 된다. (너무 당연한 이야기인가?? ^^)

    <target name="all" depends="clean, cleanjar, init, deployjar" >
        <echo message="execute all task.... " />
    </target>

예제를 간단하게 만들면서 본이 아니게 중간에 echo 를 계속 사용하게 되었다.
해당 메시지를 보여주면 특정 타겟을 실행할 때 메시지를 보여줄 수 있어서 나름 쓸만한 것 같다.
이외에도 ftp 를 이용하여 파일을 전송한다던지, 특정 WAS 를 기동시킨다던지 하는 것들도 만들 수 있다.
또한, 테스트 케이스를 만들고 실행해 볼 수 있습니다.


PS : 크루즈컨트롤이나 메이븐 같은 툴도 기회가 된다면 프로젝트에 도입을 해보고픈 생각이 듭니다.
       프로젝트 규모가 커질수록 빌드, 배포, deploy 자동화등의 절차가 중요하고 정말 필요하다고 느끼고 있습니다.

by 윤걸 | 2007/10/13 23:05 | 자동화 | 트랙백 | 덧글(4)

트랙백 주소 : http://gerions.egloos.com/tb/3851612
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by epro at 2007/10/13 23:46
오.. 늦은시간까지 열심히 준비하시는군요!
깔끔하게 정리해주시니 넘 좋아요~!!
Commented by 윤걸 at 2007/10/14 00:09
뭐얌~ 이미 다 아는거면서...
Commented by 잉어아저씨 at 2007/12/03 16:10
정말 정리가 깔끔하네요^^ 내용좀 가져갈꼐요^^;
Commented by 윤걸 at 2007/12/04 20:08
넵~ ^^;

:         :

:

비공개 덧글

<< 이전 페이지     다음 페이지 >>