등록: 한빛미디어(주) (2002-06-04 11:11:38)
저자: 한빛리포터 김영익
본 기사는 자바 빌드 도구인 Ant와 이를 이용한
실전예제를 다루는 기사이다. Ant는 실제로 어떤 프로그램을 개발하느냐에 상관없이 사용되는 빌드 도구로 얼마나 개발을 편리하게
해주느냐가 관건이지 프로그램이나 프로젝트와는 특별한 관계가 없다. 본 기사는 모든 자바 개발자를 대상으로하여 작성되었다.
초급자에게는 앞으로 진행할 프로젝트나 프로그램을 편하게 개발할 수 있게 해주며, 중급 이상자에게는 더욱 더 게을러질 수
있는(?) 기회를 제공해 줄 것이다. 본 기사의 상편을 보지 못한 독자나 Ant의 기본 개념을 모르는 독자들은 「ANT 상편: Ant 무엇에 쓰는 물건인고?」를 먼저 읽어보기 바란다.
1. copy 예제
다음과 같은 경우를 가정해보자.
나는 지금 웹 프로그램을 개발 중이다. 웹 컨테이너로는 톰캣을 사용하고 있으며 MVC 모델을 사용하기 때문에 JSP와 서블릿, 일반 자바 클래스를 만들고 있다. 그런데 일반 자바 클래스와 서블릿은 컴파일해서 클래스 파일들만 톰캣 폴더에 위치 시키면 된다고 알고 있다. 소스는 물론 다른 폴더에 있기 때문에 컴파일할 때마다 클래스 파일들을 톰캣 폴더에 복사하는 것이 여간 귀찮은 작업이 아니다. 어떻게 하면 한번에 이 문제를 해결할 수 있을까?앞에서 사용한 빌드 파일을 살짝 변경하면 문제를 간단히 해결할 수 있다. Ant에서 지원하는 'copy' 기능을 사용하여 클래스 파일들을 다른 폴더로 간단하게 복사만 하면된다. 그리고 빌드 파일 사이에 다음 부분을 추가한다. 역시 주석문은 제외하고 사용하길…
…톰캣 폴더에도 클래스 파일들이 복사된 것을 확인할 수 있다.
<property name="tomcat.dir" value="D:/Tomcat 4.0/webapps/ROOT/WEB-INF" />
…
<!--
클래스 파일들을 톰캣 폴더에 복사
-->
<target name="tomcat" depends="compile" >
<copy todir="${tomcat.dir}/classes" >
<fileset dir="${classes.dir}" >
</fileset>
</copy>
</target>
<project name="HelloEJB" default="all" basedir=".">3. JBuilder에서 AntRunner 사용하기
<!-- Build에 힐요한 전역 변수를 설정한다. -->
<!-- 필요 없는 부분은 삭제한다. -->
<property environment="env"/>
<property file="../../../../examples.properties"/>
<property name="source" value="."/>
<property name="build" value="${source}/build"/>
<property name="dist" value="${source}/dist"/>
<!-- all이라는 타겟을 수행하기 위해서는 clean, init등이 실행 성공 해야 한다. -->
<target name="all" depends="clean, init, compile_ejb, jar_ejb, ejbc"/>
<!-- build를 하기 위해 폴더 생성 및 필요한 파일을 복사한다. -->
<target name="init">
<mkdir dir="${build}"/>
<mkdir dir="${build}/META-INF"/>
<mkdir dir="${dist}"/>
<copy todir="${build}/META-INF">
<fileset dir="${source}">
<include name="*.xml"/>
<exclude name="build.xml"/>
</fileset>
</copy>
</target>
<!-- javac를 수행하여 클래스 화일을 생성한다. 컴파일에 필요한 대상 EJB의 홈 및
리모트 인터페이스, 빈 클래스 등을 클래스 패스에 추가한다. -->
<target name="compile_ejb">
<javac srcdir="${source}" destdir="${build}" includes="*.java"
classpath="${WL_HOME}/lib/weblogic_sp.jar;${WL_HOME}/lib/weblogic.jar;
${source}/helloClient.jar;"/>
</target>
<!-- 디플로이먼트 디스크립터 XML파일과 클래스 파일들을 jar로 묶는다.
ejb-client.jar를 Class-path로 설정한 manifest 파일을 설정 할 수 있다.-->
<target name="jar_ejb" depends="compile_ejb">
<jar jarfile="${dist}/std_ejb20_basic_tester.jar" basedir="${build}"
manifest="ejb_MANIFEST.MF">
</jar>
</target>
<!-- 디플로이 가능한 jar화일을 만들기 위해 ejbc를 수행한다. -->
<target name="ejbc" depends="jar_ejb">
<java classname="weblogic.ejbc" fork="yes">
<sysproperty key="weblogic.home" value="${WL_HOME}"/>
<arg line="-compiler javac ${dist}/std_ejb20_basic_tester.jar
${APPLICATIONS}/ejb20_basic_tester.jar"/>
<classpath>
<pathelement path="${WL_HOME}/lib/weblogic_sp.jar;
${WL_HOME}/lib/weblogic.jar"/>
</classpath>
</java>
</target>
<!-Build 후 필요없는 디렉토리를 삭제한다. -->
<target name="clean">
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
![]() |
![]() | |
![]() | ||
![]() |
![]() |
![]() |
Ant: The Definitive Guide | ||
![]() | ||
![]() |
![]() |
# AntRunner configuration그리고 이제 JBuilder를 실행한다. 실행하면 툴바에 아래 그림과 같은 개미 머리 버튼이 보일 것이다. 왼쪽의 버튼이 Ant 실행 버튼이고, 오른쪽 버튼은 build.xml 파일이 변경되었을 경우 다시 불러오는 버튼이다.
# Ant를 설치한 폴더의 위치에 맞게 설정하면 된다
addjars C:\dev\tools\jakarta-ant-1.4.1\lib