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-guimanager-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을 선택하기만 하면 됩니다.