maven-deploy-plugin ์ฌ์ฉ
๋ ๋ค๋ฅธ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ์ฃผ์ ๋ ์กฐ๋ฆฝ๋ ํจํค์ง์ ์๋ ๋ฐฐํฌ์ ๋๋ค. Maven์ ์ฌ์ฉํ์ฌ ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ก์ปฌ, ํ์ฌ ๋๋ ์ค์ Maven ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ป๊ฒ ์๋์ผ๋ก ํธ์ํฉ๋๊น?
Maven์๋ ์ด๋ฅผ ์ํ ํน๋ณํ maven-deploy-plugin ํ๋ฌ๊ทธ์ธ์ด ์์ต๋๋ค . ์:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<configuration>
<file>${project.build.directory}\${project.artifactId}-src.zip</file>
<url>${project.distributionManagement.repository.url}</url>
<repositoryId>${project.distributionManagement.repository.id}</repositoryId>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>zip</packaging>
<pomFile>pom.xml</pomFile>
</configuration>
</plugin>
์ด๋ฌํ ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋น๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํจํ ํจํค์ง๋ก Maven ๋ฆฌํฌ์งํ ๋ฆฌ์ ํธ์ํ ์ ์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ฅผ ์์ธํ ๋ถ์ํ์ง๋ ์์ง๋ง ์ฌ๊ธฐ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๊ฐ๋จํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ผ ํ๊ทธ๋ Maven ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํธ์๋ ํ์ผ์ ์ง์ ํฉ๋๋ค.
url ํ๊ทธ๋ Maven ์ ์ฅ์(local/corporate/โฆ)์ ๊ฒฝ๋ก์ ๋๋ค.
repositoryId ํ๊ทธ๋ ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง ์ ์ฅ์์ ์๋ณ์๋ฅผ ์ง์ ํฉ๋๋ค.
groupId , artifactId , version ํ๊ทธ๋ Maven ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํ์ค ํจํค์ง ์๋ณ์ ์ ์ํฉ๋๋ค. ์ด ์ธ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์์ต๋๋ค.
ํจํค์ง ํ๊ทธ๋ ๊ฒฐ๊ณผ๊ฐ ๋จ์ผ zip ํ์ผ๋ก ์ ์ก๋๋๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ง์ ํ์ง ์์ผ๋ฉด ์ฌ๋ฌ ๊ฐ์ jar ํ์ผ์ด ์๋๋ผ๋ ํ๋์ jar ํ์ผ์ด ์์ต๋๋ค.
pomFile ํ๊ทธ๋ ์ ํ ์ฌํญ์ด๋ฉฐ ์จ๊ฒจ์ง ๋ฐ์ดํฐ๋ ์ค๋ฒํค๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ง ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ค๋ฅธ pom.xml์ ๋ณด๋ผ ์ ์์ต๋๋ค.
Maven์ ์ฌ์ฉํ์ฌ Tomcat์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
Java ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์น ์๋ฒ๋ Apache Tomcat ์ ๋๋ค . ๋ฌผ๋ก Maven์ ๋์์ผ๋ก war ํ์ผ์ ๋ก์ปฌ ๋๋ ์๊ฒฉ Tomcat ์๋ฒ์ ์ง์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋์ค์ Tomcat์ ์ค์นํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋์ง๋ง ์ง๊ธ์ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ ๋ฐฐํฌ์ ๋ํ ์ฃผ์ ๋ง ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
1๋จ๊ณ. Tomcat ์๋ฒ์ Maven ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด Apache Tomcat์ด ์์ถ ํด์ ๋ ๋๋ ํฐ๋ฆฌ์์ conf/tomcat-users.xml ํ์ผ์ ์ด๊ณ manager-gui ๋ฐ manager-script ์ญํ ์ ์ถ๊ฐํฉ๋๋ค .
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>
2๋จ๊ณ. Maven์ด Tomcat์ ์ก์ธ์คํ๋๋ก ํ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด $MAVEN_HOME/conf/settings.xml ํ์ผ์ ์ด๊ณ ์๋ฒ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
3๋จ๊ณ. ์ ํ๋ฆฌ์ผ์ด์ ์ Apache Tomcat์ ์๋์ผ๋ก ๋ฐฐํฌํ๊ธฐ ์ํ ํน์ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ์ด๋ฆ์ tomcat7-maven-plugin ์ ๋๋ค . ๊ทธ๋ฐ๋ฐ ์ด๋ฆ์์ ์ง์ํ ์ ์๋ฏ์ด Maven ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๊ฒ์ด ์๋๋ผ Tomcat ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๊ฒ์ ๋๋ค.
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/simpleProject</path>
</configuration>
</plugin>
</plugins>
</build>
๊ตฌ์ฑ ์น์ ์์ ๋ค์์ ์ง์ ํฉ๋๋ค.
- url ์ Tomcat์ด ์คํ ์ค์ธ ์ฃผ์์ manager/text ์ ๊ฒฝ๋ก์ ๋๋ค.
- ์๋ฒ - settings.xml ํ์ผ ์ ์๋ฒ ID
- ๊ฒฝ๋ก - ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๋ ์ฃผ์
๋ฐฐํฌ ๊ด๋ฆฌ ๋ช ๋ น:
mvn tomcat7:๋ฐฐํฌ | ์ ํ๋ฆฌ์ผ์ด์ ์ Tomcat์ ๋ฐฐํฌ |
---|---|
mvn tomcat7:๋ฐฐํฌ ํด์ | Tomcat์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑฐ |
mvn tomcat7:์ฌ๋ฐฐํฌ | ์ ํ๋ฆฌ์ผ์ด์ ์ฌ๋ฐฐํฌ |
Cargo ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ฐฐํฌ
์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ฅผ ์ํ ๋ ๋ค๋ฅธ ์ ์ฉํ๊ณ ๋ค์ฌ๋ค๋ฅํ ํ๋ฌ๊ทธ์ธ์ Cargo Plugin ์ ๋๋ค . ๊ทธ๋ ๋ค์ํ ์ ํ์ ์น ์๋ฒ๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. Apache Tomcat์์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.9.10</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>installed</type>
<home>Insert absolute path to tomcat 7 installation</home>
</container>
<configuration>
<type>existing</type>
<home>Insert absolute path to tomcat 7 installation</home>
</configuration>
</configuration>
</plugin>
</plugins>
</build>
๋ก์ปฌ Tomcat์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
mvn install
mvn cargo:deploy
์๊ฒฉ ์น ์๋ฒ์ ๋ฐฐํฌํ๋ ค๋ฉด ์ด ์๋ฒ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด pom.xml ์ ๋ฑ๋กํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค .
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password>admin</cargo.remote.password>
<cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
</properties>
</configuration>
</configuration>
IntelliJ IDEA๋ก ๋ฐฐํฌ
Intellij IDEA๊ฐ ๋ชจ๋ ์์ ์ ์์ฒด์ ์ผ๋ก ์ํํ๋ฏ๋ก ์ค์น๋ Tomcat ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค .
1๋จ๊ณ. ๋ก์ปฌ Tomcat ๊ตฌ์ฑ์ ๋ง๋ญ๋๋ค.
2๋จ๊ณ. ๊ทธ๋ฐ ๋ค์ ๋ก์ปฌ Tomcat์ ์ ํํฉ๋๋ค.
3๋จ๊ณ. ํฐ์บฃ ๊ตฌ์ฑ:
4๋จ๊ณ. Tomcat ํด๋์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค.
5๋จ๊ณ. ํ๋ก์ ํธ๋ฅผ Tomcat์ ์ํฐํฉํธ๋ก ์ถ๊ฐํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ฐฐํฌ ํญ์ผ๋ก ์ด๋ํ์ฌ ์ค๋ฅธ์ชฝ์ + ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค .
๊ทธ๊ฒ ๋ค์ผ.
๊ทธ๋ฐ๋ฐ ์๊ฒฉ ์๋ฒ์ ๋ฐฐํฌํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ๋จ๊ณ์์ Remote Tomcat์ ์ ํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
GO TO FULL VERSION