개발신의 한타
maven 을 이용해 원격서버로 배포하기 본문
pom.xml 설정
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://xxx.xxx.xxx.xxx:8080/manager/html</url>
<server>settingid</server>
<!-- 톰캣 6 이하에서 사용했던 방식
<username>tomcat</username>
<password>tomcat1</password>
-->
<path>/</path> <!-- 컨텍스트 패스다. 원하는 패스가 있다면 잡아주자. -->
</configuration>
</plugin>
주의점 : 톰캣 7이 되면서 몇가지가 바뀌었다.
- url이 바뀌었다. ( http://xxx.xxx.xxx.xxx:8080/manager -> http://xxx.xxx.xxx.xxx:8080/manager/html)
- username, password 설정이 .m2/settings.xml로 옮겨졌다.
- manager-script가 추가 되었다면 <url>http://xxx.xxx.xxx.xxx:8080/manager/text</url>로 해보자
tomcat-users.xml 설정
tomcat의 conf/tomcat-users.xml을 설정한다.
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat1" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>
주의점 : 톰캣 7이 되면서 몇가지가 바뀌었다.
rolename이 manager에서 manager-gui, manager-script등으로 세분화 되었다.
settings.xml 설정
maven의 settings.xml 파일을 설정하자.
위치는 사용자/.m2/settings.xml (보통 C:\Users\유저명\.m2\settings.xml)이다.
해당 위치에 파일이 위치하지 않을 가능성이 크다.
파일을 만들어주자. 예제 파일은 maven 원본을 다운 받았다면 원본에서 찾아보면 된다.
정 모르겠다면 구글링으로 maven settings.xml이라고 찾아보자. 쉽게 찾을 것이다. 내용도 별것없다.
<settings>
....
<servers>
<server>
<id>settingid</id>
<username>tomcat</username>
<password>tomcat1</password>
</server>
</servers>
....
</settings>
위와 같이 설정후에 build를 해본다.
이클립스에서는 [해당 프로젝트] - Run As - Maven Build를 하면된다.
처음하는 것이라면 설정 창이 뜰것이다. 설정창이 뜨지 않는다면 항목 아래의 Run Configurations를 하자.
goals 항목에 'tomcat:undeploy tomcat:deploy'와 같이 넣은 후에 실행하자.
- tomcat:undeploy : 있는거 다 지우고 (해당 컨텍스트에 있는거 다 지워진다는거에 주의하자)
- tomcat:deploy : 디플로이한다.
확인하기
이클립스 [Window] - Preferences - Maven - User Settings 항목에서
- settings 파일을 위치를 잡아주자. 보통 C:\Users\유저명\.m2\settings.xml
- repository의 위치를 잡아주자. 보통 C:\Users\유저명\.m2\repository
실행해보라. 에러를 만나게 될것이다.
1. undeploy 할 항목이 없어 에러가 날수도 있다. 그건 별거 아니다. 한번 deploy이 한후 다시 한다면 잘될것이므로.
2. 만약 Cannot invoke Tomcat manager라는 항목이 포함된 ERROR을 만난다면!
- 이제 제대로 에러의 세계로 온것이다. 다음 포스팅에서 이것에 대한 자세한 내용을 기록할것이다.