---
schema_version: "1"
id: 38509d142becc4e31c63401289e281f5f56f4ac8860048675b12a4b0e66632e3
title: Mule Maven プラグイン
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.5/mmp-concept.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.5/mmp-concept
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c1d53a45d8d1c4a6f9d09620482306aaa2ba534257376269f299239196bd5f7c
description: MuleSoft Documentation Site
release: "4.5"
latest: false
---
# Mule Maven プラグイン

<table><tbody><tr><td class="icon"><i class="fa icon-warning" title="Warning"></i></td><td class="content">Mule Maven プラグインバージョン 3.0.0、3.1.0、3.1.1、3.1.2、3.1.3、3.1.4、3.1.5、3.1.6、3.1.7、3.8.3 は非推奨です。</td></tr></tbody></table>

Mule Maven プラグインでは、Mule アプリケーションのパッケージおよびデプロイメントを Maven ライフサイクルと統合できます。  
パッケージ化の手順は、​[「Mule アプリケーションをパッケージする」](https://docs.mulesoft.com/jp/mule-runtime/4.5/package-a-mule-application)​を参照してください。

Mule Maven プラグインは Mule Runtime Engine (Enterprise Edition) および Mule Kernel (Community Edition) と互換性があります。

Mule Maven プラグインを使用すれば、次のデプロイメント戦略のいずれかを使用して、CloudHub、CloudHub 2.0、または Anypoint Runtime Fabric への、もしくはオンプレミスでの Mule アプリケーションのデプロイメントを自動化できます。

- CloudHub デプロイメント  
    Mule アプリケーションを CloudHub にデプロイします。  
    手順は、​[「CloudHub へのアプリケーションのデプロイ」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-to-cloudhub)​を参照してください。
- CloudHub 2.0 デプロイメント  
    Mule アプリケーションを CloudHub 2.0 にデプロイします。  
    手順は、​[「CloudHub 2.0 へのアプリケーションのデプロイ」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-to-cloudhub-2)​を参照してください。
- Runtime Fabric デプロイメント  
    Anypoint Runtime Fabric に Mule アプリケーションをデプロイします。  
    手順は、​[「Anypoint Runtime Fabric へのアプリケーションのデプロイ」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-to-rtf)​を参照してください。
- Runtime Manager REST API デプロイメント  
    Runtime Manager REST API を使用してサーバーまたはサーバークラスターに Mule アプリケーションをデプロイします。  
    手順は、​[「Runtime Manager REST API を使用して Mule アプリケーションをデプロイする」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#mmp-deploy-arm)​を参照してください。
- Runtime Manager エージェントデプロイメント  
    Runtime Manager エージェントを使用して Mule アプリケーションをデプロイします。  
    このデプロイメント戦略は、すべての Mule インスタンスが 1 つのアドレス空間にある場合のみ機能します。  
    手順は、​[「Runtime Manager エージェントを使用した Mule アプリケーションのデプロイ」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#mmp-deploy-agent)​を参照してください。
- スタンドアロンランタイムデプロイメント  
    マシンで実行中の Mule インスタンスに Mule アプリケーションをデプロイします。  
    手順は、​[「スタンドアロン Mule Runtime Engine への Mule アプリケーションのデプロイ」](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#mmp-deploy-standalone)​を参照してください。

## [](#互換性)互換性

- Mule 4.x
- Anypoint Studio 7.x

## [](#mule-maven-プラグインの目標)Mule Maven プラグインの目標

Mule Maven プラグインには次の目標があります。

- `package`  
    プロジェクトの jar ファイルを生成します。
- `deploy`  
    任意のアプリケーションデプロイメント対象 (CloudHub、Runtime Fabric、またはオンプレミス) で自動的にアプリケーションをアップロードして起動します。
- `mule:deploy`  
    指定された場所からアーティファクトをデプロイします。
- `mule:undeploy`  
    任意のアプリケーションデプロイメント対象 (CloudHub、Runtime Fabric、またはオンプレミス) から自動的にアプリケーションを削除します。

各目標では、目的のプラグイン動作に固有のパラメーターを受け入れます。 コマンドラインからパラメーターを指定するには、パラメーター名の先頭に ​`-D`​ を追加します。

### [](#package-goal)目標のパッケージ化

`package`​ 目標では、アプリケーションの JAR ファイルが生成されます。この目標は、デフォルトで Maven ライフサイクルフェーズ: `package`​ にバインドします。

省略可能なパラメーター

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>onlyMuleSources</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>boolean (ブール)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ソースコードのみが含まれるアプリケーションの JAR ファイルを生成します。このプロパティは共有のみに使用します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>attachMuleSources</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>boolean (ブール)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>生成した JAR ファイル内にソースコードを添付します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>lightweightPackage</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>boolean (ブール)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>JAR ファイル内のすべてのアプリケーションの連動関係が含まれるリポジトリを生成しません。このプロパティは共有のみに使用します。</p>
</div></div></td>
</tr>
</tbody>
</table>

たとえば、​`package`​ 目標を実行して ​`attachMuleSources`​ パラメーターを設定するには、次のコマンドを実行します。

```console
mvn package -DattachMuleSources
```

### [](#目標のデプロイ)目標のデプロイ

この目標では、アプリケーションの JAR ファイルを任意のアプリケーションデプロイメント対象にアップロードしてデプロイします。deploy 目標は、デフォルトで Maven ライフサイクルフェーズ: `deploy`​ にバインドします。

省略可能なパラメーター

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>artifact</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>String (文字列)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>アプリケーションの JAR ファイルをデプロイするパス。デフォルトでは、アプリケーションの ​<code>target</code>​ フォルダーに設定されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>muleDeploy</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>boolean (ブール)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このプラグインに、プラグイン設定で定義されたデプロイメント戦略を使用してデプロイするよう指示します。​<code>muleDeploy</code>​ パラメーターが設定されていない場合、このプラグインで、アプリケーションの ​<code>pom.xml</code>​ ファイルの ​<code>distributionManagement</code>​ セクションで定義されたリポジトリにアーティファクトがアップロードされます。</p>
</div></div></td>
</tr>
</tbody>
</table>

たとえば、​`deploy`​ 目標を実行して ​`muleDeploy`​ パラメーターを設定するには、次のコマンドを実行します。

```console
mvn deploy -DmuleDeploy
```

### [](#muledeploy-目標)mule:deploy 目標

この目標を使用すると、アーティファクトを作成せずにデプロイできます。アーティファクトの場所を指定するには、​`mule.artifact`​ パラメーターを使用します。

次に例を示します。

```console
mvn mule:deploy -Dmule.artifact=myProject/myArtifact.jar
```

このプロパティは、CloudHub、スタンドアロン、またはオンプレミスデプロイメントで有効です。

### [](#muleundeploy-目標)mule:undeploy 目標

この目標では、任意のアプリケーションデプロイメント対象からアプリケーションを削除します。プラグイン設定の情報を使用して、アプリケーションを定義されたデプロイメント対象から削除します。

`undeploy`​ 目標を実行するには、次のコマンドを実行します。

```console
mvn mule:undeploy
```

undeploy 目標により、Mule Maven プラグイン 3.3.0 以降のバージョンのアプリケーションも削除されます。

## [](#add-mmp)Mule Maven プラグインを Mule プロジェクトに追加する

操作を実行する前に、Mule Maven プラグインをプロジェクトに追加する必要があります。

Mule Maven プラグインを追加するには、その Maven 連動関係をプロジェクトに追加する必要があります。

```xml
<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.7.1</version>
  <extensions>true</extensions>
</plugin>
```

このリポジトリから:

```xml
<pluginRepositories>
  <pluginRepository>
    <id>mule-public</id>
    <url>https://repository.mulesoft.org/nexus/content/repositories/releases</url>
  </pluginRepository>
</pluginRepositories>
```

これにより、プロジェクトで Mule Maven プラグインが有効になります。

<table><tbody><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><code>&lt;extensions&gt;true&lt;/extensions&gt;</code>​ が存在しない場合、プラグインは機能しません。</td></tr></tbody></table>

## [](#プラグイン実行のスキップ)プラグイン実行のスキップ

デプロイメント設定内で ​`skip`​ パラメーターを true に設定することで、プラグイン実行をスキップできます。

```xml
<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.7.1</version>
  <extensions>true</extensions>
  <configuration>
    <standaloneDeployment>
      <muleHome>${mule.home.test}</muleHome>
      <skip>true</skip>
    </standaloneDeployment>
  </configuration>
</plugin>
```

## [](#デプロイメント検証のスキップ)デプロイメント検証のスキップ

任意のプラットフォームデプロイメント (Cloudhub、Runtime Manager、Runtime Fabric) 内で ​`skipDeploymentVerification`​ パラメーターを true に設定することで、状況検証をスキップできます。

```xml
<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.7.1</version>
  <extensions>true</extensions>
  <configuration>
    <runtimeFabricDeployment>
      ...
      <skipDeploymentVerification>true</skipDeploymentVerification>
      ...
    </runtimeFabricDeployment>
  </configuration>
</plugin>
```

`skipDeploymentVerification`​ パラメーターが存在しない場合、デフォルト値は false です。  
この機能は、プラグインバージョン 3.2.5 以降で使用できます。

## [](#configure-shared-libraries)共有ライブラリの設定

共有ライブラリでは、アプリケーションの連動関係を設定し、この連動関係をアプリケーション内のすべてのコネクタからアクセス可能にできます。  
この機能の詳細な説明は、​[「Shared Libraries (共有ライブラリ)」](https://docs.mulesoft.com/mule-runtime/latest/about-classloading-isolation#shared-libraries)​を参照してください。

連動関係を共有ライブラリとして設定するには、プロジェクトの ​`pom.xml`​ ファイルの Mule Maven プラグイン設定内に次の要素を追加します。

```xml
<sharedLibraries>
  <sharedLibrary>
    <groupId>${dependencyGroupID}</groupId>
    <artifactId>${dependencyArtifactID}</artifactId>
  </sharedLibrary>
</sharedLibraries>
```

次の例では、プロジェクトのデータベース用 Anypoint Connector (Database Connector) を設定し、さらに MySQL ドライバーを共有ライブラリとして設定しています。

```xml
<build>
  <plugins>
    <!-- Mule Maven Plugin configuration -->
    <plugin>
    	<groupId>org.mule.tools.maven</groupId>
    	<artifactId>mule-maven-plugin</artifactId>
    	<version>${mule.maven.plugin.version}</version>
    	<extensions>true</extensions>
    	<configuration>
    	<sharedLibraries>
        <!-- MySQL driver dependency configured as a shared library -->
        <sharedLibrary>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
        </sharedLibrary>
      </sharedLibraries>
      </configuration>
    </plugin>
  </plugins>
</build>

<dependencies>
  <!--Database Connector dependency -->
  <dependency>
    <groupId>org.mule.connectors</groupId>
    <artifactId>mule-db-connector</artifactId>
    <version>1.5.0</version>
    <classifier>mule-plugin</classifier>
  </dependency>
  <!-- MySQL driver dependency -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.33</version>
  </dependency>
</dependencies>
```

## [](#configure-plugin-dependencies)追加プラグイン連動関係の設定

アプリケーションのコネクタ用に追加プラグイン連動関係を設定すると、それらの連動関係はそのコネクタでのみ使用可能になります。これにより、異なるコネクタに対して、異なる連動関係や同じ連動関係の複数のバージョンさえ設定できます。  
この機能の詳細な説明は、​[「Additional Plugin Dependencies (追加プラグイン連動関係)」](https://docs.mulesoft.com/mule-runtime/latest/about-classloading-isolation#additional-plugin-dependencies)​を参照してください。

追加プラグイン連動関係を設定するには、プロジェクトの ​`pom.xml`​ ファイルの Mule Maven プラグイン設定内に次の要素を追加します。

```xml
<additionalPluginDependencies>
    <plugin>
        <groupId>${connectorGroupID}</groupId>
        <artifactId>${connectorArtifactID}</artifactId>
        <additionalDependencies>
            <dependency>
                <groupId>${dependencyGroupID}</groupId>
                <artifactId>${dependencyArtifactID}</artifactId>
                <version>${dependencyVersion}</version>
            </dependency>
        </additionalDependencies>
    </plugin>
</additionalPluginDependencies>
```

次の例では、Derby ドライバーを Database Connector の連動関係として設定しています。

```xml
<plugin>
    <!-- Mule Maven Plugin configuration -->
    <groupId>org.mule.tools.maven</groupId>
    <artifactId>mule-maven-plugin</artifactId>
    <version>${mule.maven.plugin.version}</version>
    <configuration>
        <!-- Plugin dependencies configuration-->
        <additionalPluginDependencies>
            <!-- The connector for which the dependency is defined -->
            <plugin>
                <groupId>org.mule.connectors</groupId>
                <artifactId>mule-db-connector</artifactId>
                <!-- Dependencies definition for the connector -->
                <additionalDependencies>
                    <dependency>
                        <groupId>org.apache.derby</groupId>
                        <artifactId>derby</artifactId>
                        <version>10.11.1.1</version>
                    </dependency>
                </additionalDependencies>
            </plugin>
        </additionalPluginDependencies>
    </configuration>
</plugin>
```

## [](#mule-maven-プラグインリファレンス)Mule Maven プラグインリファレンス

各デプロイメント戦略のパラメーターリファレンスへのリンクを以下に示します。

- [CloudHub デプロイメントのパラメーターリファレンス](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-to-cloudhub#cloudhub-deploy-reference)
- [Runtime Fabric デプロイメントのパラメーターリファレンス](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-to-rtf#rtf-deploy-reference)
- [スタンドアロンデプロイメントのパラメーターリファレンス](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#standalone-deploy-reference)
- [Runtime Manager REST API デプロイメントのパラメーターリファレンス](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#arm-deploy-reference)
- [Runtime Manager エージェントデプロイメントのパラメーターリファレンス](https://docs.mulesoft.com/jp/mule-runtime/4.5/deploy-on-premises#arm-agent-deploy-reference)

## [](#関連情報)関連情報

- [クラスローディング分離](https://docs.mulesoft.com/jp/mule-runtime/4.5/about-classloading-isolation)
- [リソースのエクスポート](https://docs.mulesoft.com/jp/mule-runtime/4.5/how-to-export-resources)
- [Maven を使用した Exchange アセットのパブリッシュとデプロイ](https://docs.mulesoft.com/jp/exchange/to-publish-assets-maven)
- [Allocating Resources for Application Deployment on Runtime Fabric](https://docs.mulesoft.com/runtime-fabric/latest/deploy-resource-allocation-self-managed)
- [Runtime Manager REST API](https://docs.mulesoft.com/jp/runtime-manager/runtime-manager-api)
- [Runtime Manager エージェント](https://docs.mulesoft.com/jp/runtime-manager/runtime-manager-agent)