Whiteship's Note

Ant를 사용한 배포 자동화

Good Tools : 2007.10.30 09:21


전제조건.
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를 더블클릭하여 실행하면 됩니다.
사용자 삽입 이미지

'Good Tools' 카테고리의 다른 글

Eclipse TPTP 맛보기  (4) 2007.11.13
XQuared 사용하기 3  (4) 2007.11.08
XQuared 사용하기 2  (0) 2007.11.07
XQuared 사용하기  (0) 2007.11.05
외장 하드 포맷하기.  (0) 2007.11.03
Ant를 사용한 배포 자동화  (0) 2007.10.30
톰캣 이름 변경하기  (2) 2007.10.23
Ctrl + Shift + E  (2) 2007.10.18
Commonclipse  (0) 2007.10.15
Ant 완전 기초  (0) 2007.10.14
Ant 라이브러리 관리  (0) 2007.10.11
top




: 1 : ··· : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : ··· : 186 :