반응형

Maven으로 Tomcat에 배포하는 경우 보통 mvn install 키워드로 war파일로 패키징 한 후,  

만들어진 파일을 원격지에 접속하여 FTP / SCP등으로 Tomcat의 webapps폴더에 넣어서 배포를 하게 됩니다.

 

매번 FTP / SCP 등으로 원격지에 접속해서 파일을 넣는게 비효율적인 일 같아서,

이것저것 알아보던 중 Tomcat Maven plugin이라는 것을 알게 되었습니다.

 

지금까지 비효율적이었던 일들을 mvn tomcat7:redeploy 명령어만으로,  

로컬 환경에서 원격지의 톰캣 webapps폴더를 찾아서, 바로 배포를 해주는 강력한 플러그인입니다.

 

일단 Tomcat Manager관련 세팅이 필요합니다.

 

톰캣이 설치된 폴더의 conf/tomcat-users.xml에 계정 등록을 해주고, 해당 계정에 매니저 권한을 주어야 합니다.  

(여러계정으로 관리하여, 권한을 달리 설정할 수도 있는 것으로 보입니다.)

 

아래와 같이 설정해줍니다.

 

[tomcat-users.xml]

<tomcat-users>
   <role rolename="manager-gui" />
   <role rolename="manager-script" />
   <role rolename="manager-status" />
   <role rolename="manager-jmx" />
   <user username="사용할 아이디" password="사용할 패스워드" roles="admin-gui,manager-gui,manager-script,manager-status,manager-jmx" /> 
</tomcat-users>

 

 

어플리케이션의 pom.xml로 돌아와서, 세팅을 해줍니다. 

[pom.xml]

<build>
    <plugins>
        <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>배포할 경로</path>
                    <url>톰캣이 설치된 원격지의 접속 url/manager/text</url>
                    <username>톰캣매니저에 설정한 아이디</username>
                    <password>톰캣매니저에 설정한 패스워드</password>
                </configuration> 
    </plugins> 
</build>


 

위와 같이 설정을 마친 후, mvn tomcat7:redeploy (deploy, undeploy가 따로따로 있습니다만, 저는 귀찮아서 undeploy -> deploy기능을 동시에 하는, redeploy를 사용합니다.)를 해주면, 지정한 원격지에 배포가 됩니다.

 

웹 접속 기반으로 파일을 올리는 것이기 때문에, 웹 접속 IP에 대한 방화벽만 오픈하시면 어디서든 사용이 가능합니다.

 

반응형
,