전제조건.
1. 개발은 Eclipse를 사용하고 있습니다.
2. 배포할 곳은 Tomcat 서버입니다.

1. 톰캣 매니저 설정하기.
톰캣 홈(저는 /usr/share/tomcat5)의 conf 디렉터리에 tomcat-users.xml 파일을 다음과 같이 수정합니다.

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="배포할 때 사용할 유저 네임" password="배포할 때 사용할 유저 패스워드" roles="admin,manager"/>
</tomcat-users>

2. 톰캣 매니저 확인.
톰캣 서버 URL/ 접속 한 다음 왼쪽 매뉴에서 manager 선택하여 위에 설정한 "배포할 때 사용할 유저 네임"과 "배포할 때 사용할 패스워드"로 로그인 해봅니다.

3. 톰캣 클라이언트 디플로이어 다운로드 및 압축풀기.
먼저 배포할 곳의 톰캣 서버과 같은 버전의 디플로이어를 설치 해야합니다.
디플로이어는 아파치 FTP에서 찾을 수 있습니다.
다운로드 한 파일의 압축을 풀면 lib 디렉터리가 보입니다.
이 디렉터리에 있는 모든 파일들을 Ant가 참조할 수 있는 라이브러리 폴더로 복사해 줍니다.

4. 빌드파일 작성.

<project name="Seminar" basedir=".">

 

       <!-- Load properties -->

       <property file="src/server.properties" />

 

       <!-- Set classpath -->

       <path id="base-classpath">

             <pathelement path="src" />

             <pathelement path="bin" />

             <fileset dir="web/WEB-INF/lib">

                    <include name="*.jar" />

             </fileset>

             <fileset dir="${ant.home}/lib" />

       </path>

 

       <!-- Configure the custom Ant tasks for the Manager application -->

       <taskdef resource="org/apache/catalina/ant/catalina.tasks" classpathref="base-classpath" />

 

       <!-- 배포 자동화 -->

       <target name="War 생성하기">

             <war destfile="${ant.project.name}.war" webxml="web/WEB-INF/web.xml">

                    <lib dir="web/WEB-INF/lib" />

                    <classes dir="build/classes" />

                    <fileset dir="web" />

             </war>

       </target>

 

       <target name="Tomcat 배포하기" depends="War 생성하기">

             <deploy url="${url}" username="${username}" password="${password}" path="/${ant.project.name}" war="${ant.project.name}.war" update="true" />

             <delete file="${ant.project.name}.war"/>

       </target>

 

</project>

위 빌드파일에서 사용할 프로퍼티 파일이 한 개 있는데, 그안에 2번에서 확인했었던, tomcat manager의 url과 1번에서 생성한 username, password를 적어줍니다. 그러면 그 값을 참조하여, deploy라는 task에서 사용하게 됩니다.

ant로 시작하는 EL은 ant에서 기본으로 제공하는 속성으로 프로퍼티 파일에 등록하지 않아도 사용할 수 있는 값들입니다. 이름을 보면 어떤 값이 들어갈지 직관적으로 알 수 있습니다.

deploy라는 task를 사용하기 위해서(ant에서 기본으로 제공하는 task가 아닙니다.), taskdef를 사용하여 tomcat deployer에서 제공하는 task를 사용할 수 있도록 등록해 두었습니다.

또한 tomcat deployer가 참조하는 라이브러리를 사용할 수 있도록 path 엘리먼트 안에 <fileset dir="${ant.home}/lib" /> 을 추가하였습니다.

배포한 다음에는 로컬에 생성한 war파일을 삭제하기 위해 delete task를 사용했습니다.

5. Ant target 사용하기
Eclipse에서 Ant view를 열고 위에서 작성한 build.xml 파일을 불러 옵니다.
사용자 삽입 이미지그 다음 원하는 target를 더블클릭하여 실행하면 됩니다.
사용자 삽입 이미지