maven-deploy-plugin の使用

もう 1 つの非常に興味深いトピックは、組み立てられたパッケージの自動展開です。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 リポジトリにプッシュできます。このプロセスを詳細に分析することはしませんが、ここで何が起こっているかを簡単に考察します。

fileタグは、新しいライブラリとして Maven リポジトリにプッシュされるファイルを指定します。

URLタグはMaven リポジトリへのパス (local/corporate/…) です。

repositoryIdタグは、デプロイメントが行われるリポジトリの識別子を指定します。

groupIdartifactIdversionタグは、Maven リポジトリ内の標準パッケージ ID を定義します。これら 3 つのパラメータによってライブラリを一意に識別できます。

パッケージングタグは、結果が単一の zip ファイルとして送信されるようにするために使用されます。指定しない場合は、複数の jar ファイルがある場合でも、jar ファイルは 1 つになります。

pomFileタグはオプションであり、これを使用すると、非表示データやオーバーヘッド データを含まない別の pom.xml をリポジトリに送信できます。

Maven を使用して Web アプリケーションを Tomcat にデプロイする

Java Web アプリケーション用の最も人気のある Web サーバーは、Apache Tomcatです。そしてもちろん、Maven の助けを借りて、war ファイルをローカルまたはリモートの Tomcat サーバーに直接デプロイすることもできます。

Tomcat のインストールと構成方法については後ほど学習しますが、ここでは Web アプリケーションの自動デプロイメントについてのみ触れておきます。

第一歩。Maven に Tomcat サーバーへのアクセスを許可する必要があります。これを行うには、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
  • path - デプロイされたアプリケーションが利用できるアドレス

展開管理コマンド:

mvn tomcat7:デプロイ アプリケーションを Tomcat にデプロイする
mvn tomcat7:アンデプロイ Tomcat からアプリケーションを削除する
mvn tomcat7:再デプロイ アプリケーションを再デプロイする

Cargo プラグインを使用してデプロイする

Web アプリケーションをデプロイするためのもう 1 つの便利で多用途なプラグインは、Cargo Pluginです。彼は、さまざまな種類の Web サーバーを操作する方法を知っています。これを 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>

Web アプリケーションをローカル Tomcat にインストールするには、次のコマンドを実行するだけです。

mvn install
mvn cargo:deploy

リモート Web サーバーに展開する場合は、このサーバーへのアクセス権を設定する必要があります。これを行うには、それらを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だけです。

第一歩。ローカルの Tomcat 構成を作成します。

ステップ2。次に、ローカル Tomcat を選択します。

ステップ 3。Tomcat の構成:

ステップ4。Tomcat フォルダーへのパスを追加します。

ステップ5。プロジェクトをアーティファクトとして Tomcat に追加します。

これを行うには、[展開] タブに移動し、右側の+ボタンをクリックします。

それで全部です。

ちなみに、リモート サーバーにデプロイする必要がある場合は、2 番目のステップで [Remote Tomcat] を選択するだけです。