2012/10/24 16:36

Maven을 이용한 Deploy..1 (Tomcat) Architect



maven을 이용하더라도, maven deploy를 사용하지 않는다면,
이전과 똑같이 war 파일을 뽑아서, 개발서버 혹은 운영서버에 ftp 전송하고, 
서버에 원격 붙어서 tomcat에 배포하는 방법을 사용하면 된다.

참,, 고전적인 방법이고,, 아직도 그렇게 써 왔었고.;;

근데, 오늘은 maven을 이용해서 자동으로 서버 tomcat(WAS)위에 배포하는 방법을 알아보자.
방법은 두가지가 있다. 

1. tomcat maven plugin 사용한 maven deploy
일단 maven프로젝트 내에, pom.xml파일에 아래 내용을 넣는다.
-------------
<build>
<plugins>
<!--tomcat-maven-plugin 배포하기  -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<username>admin</username>
<password>password</password>
<server>Tomcat</server>
<path>/contextRoot</path>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
-------------
무슨 내용이냐면, 
tomcat-maven-plugin 을 이용해서 configuration 내의 url로 배포를 하는데, 
서버는 tomvat, name과 password는 tomcat에 등록된 것, 그리고 path로 사용할 context root를 사용한다.
그리고,, maven-compiler-plugin의 configuration에 프로젝트의 jdk버전을 등록한다. 

위와 같이 하면 끝? 아니다. 
위에 말한대로, tomcat에 username과 password를 등록해 주어야 한다.
서버에 설치된 tomcat 아래, conf아래 tomcat-users.xml 파일을 열어, 
아래와 같이 추가한다.
-------------
  <role rolename="manager-script"/>
  <user username="admin" password="password" roles="manager-script"/>
-------------
그리고 tomcat을 재기동한다. 

마지막으로 maven goals를 이용해서 deploy한다.
방법은, 
해당 프로젝트를 선택하고 우클릭,
run as / run configurations. 선택/ maven build 에서 우클릭 / new 하면 
신규로 등록할 수 있다.
여기서, name 넣고, Base Directory 지정하고,
Goals 에는 tomcat:deploy 라고 적는다.
apply 후, RUN.

그러면 콘솔에 잘 로그가 찍히면서, BUILD SUCCESS 라는 메시지를 보게 될 것이다.
그러면 해당 서버에 접속해서 잘 배포되었는지 확인한다. 

자, 배포는 다 되었고, 
근데, 한가지 문제가 있다.
정확한 원인은 모르겠지만,
위의 방법으로는 deploy만 가능하다.
즉, undeploy나 redeploy가 동작하지 않는다.(undeploy의 경우 war파일만 지워진다;;)
그래서 삭제는 직접 서버에 붙어서 지우고, 다시 maven으로 deploy해야 한다.

좀,,, 불편하다.. 

그래서 cargo를 사용하기로 한다.

이는 두번째 포스트에... 
(좀 쉬었다가 쓰고 싶어서..;;; 헉헉;; )


덧글

댓글 입력 영역