Mule Maven プラグイン

Unresolved include directive in modules/ROOT/pages/mmp-concept.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

Mule Maven プラグインでは、Mule アプリケーションのパッケージおよびデプロイメントを Maven ライフサイクルと統合できます。
パッケージ化の手順は、​「Mule アプリケーションをパッケージする」​を参照してください。

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

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

互換性

  • Mule 4.x

  • Anypoint Studio 7.x

Mule Maven プラグインの目標

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

  • package
    プロジェクトの jar ファイルを生成します。

  • deploy
    任意のアプリケーションデプロイメント対象 (CloudHub、Runtime Fabric、またはオンプレミス) で自動的にアプリケーションをアップロードして起動します。

  • mule:deploy
    指定された場所からアーティファクトをデプロイします。

  • mule:undeploy
    任意のアプリケーションデプロイメント対象 (CloudHub、Runtime Fabric、またはオンプレミス) から自動的にアプリケーションを削除します。

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

目標のパッケージ化

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

省略可能なパラメーター

名前 説明

onlyMuleSources

boolean (ブール)

ソースコードのみが含まれるアプリケーションの JAR ファイルを生成します。このプロパティは共有のみに使用します。

attachMuleSources

boolean (ブール)

生成した JAR ファイル内にソースコードを添付します。

lightweightPackage

boolean (ブール)

JAR ファイル内のすべてのアプリケーションの連動関係が含まれるリポジトリを生成しません。このプロパティは共有のみに使用します。

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

mvn package -DattachMuleSources

目標のデプロイ

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

省略可能なパラメーター

名前 説明

artifact

String (文字列)

アプリケーションの JAR ファイルをデプロイするパス。デフォルトでは、アプリケーションの ​target​ フォルダーに設定されます。

muleDeploy

boolean (ブール)

このプラグインに、プラグイン設定で定義されたデプロイメント戦略を使用してデプロイするよう指示します。​muleDeploy​ パラメーターが設定されていない場合、このプラグインで、アプリケーションの ​pom.xml​ ファイルの ​distributionManagement​ セクションで定義されたリポジトリにアーティファクトがアップロードされます。

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

mvn deploy -DmuleDeploy

mule:deploy 目標

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

次に例を示します。

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

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

mule:undeploy 目標

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

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

mvn mule:undeploy

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

Mule Maven プラグインを Mule プロジェクトに追加する

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

Unresolved include directive in modules/ROOT/pages/mmp-concept.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

プラグイン実行のスキップ

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

<plugin>
Unresolved include directive in modules/ROOT/pages/mmp-concept.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <configuration>
    <standaloneDeployment>
      <muleHome>${mule.home.test}</muleHome>
      <skip>true</skip>
    </standaloneDeployment>
  </configuration>
</plugin>

デプロイメント検証のスキップ

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

<plugin>
Unresolved include directive in modules/ROOT/pages/mmp-concept.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <configuration>
    <runtimeFabricDeployment>
      ...
      <skipDeploymentVerification>true</skipDeploymentVerification>
      ...
    </runtimeFabricDeployment>
  </configuration>
</plugin>

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

共有ライブラリの設定

共有ライブラリでは、アプリケーションの連動関係を設定し、この連動関係をアプリケーション内のすべてのコネクタからアクセス可能にできます。
この機能の詳細な説明は、​「Shared Libraries (共有ライブラリ)」​を参照してください。

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

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

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

<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>

追加プラグイン連動関係の設定

アプリケーションのコネクタ用に追加プラグイン連動関係を設定すると、それらの連動関係はそのコネクタでのみ使用可能になります。これにより、異なるコネクタに対して、異なる連動関係や同じ連動関係の複数のバージョンさえ設定できます。
この機能の詳細な説明は、​「Additional Plugin Dependencies (追加プラグイン連動関係)」​を参照してください。

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

<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 の連動関係として設定しています。

<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>