| 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 は非推奨です。 |
|
可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。 |
Anypoint Studio、Anypoint Runtime Manager、または Anypoint Platform CLI を使用してアプリケーションをオンプレミスでデプロイすることに加えて、Mule Maven プラグインを使用して Mule アプリケーションをデプロイすることもできます。これを行うには、特定の前提条件を満たし、目的のデプロイメント戦略をプロジェクトの pom.xml ファイルで定義する必要があります。
別の方法を使用してオンプレミスにアプリケーションをデプロイする場合は、以下を参照してください。
オンプレミスデプロイメント戦略
Mule Maven プラグインを使用してアプリケーションをオンプレミスにデプロイする場合、3 つの異なるデプロイメント方法を選択できます。
-
スタンドアロンデプロイメント
この方法を使用して、オンプレミス Mule インスタンスに Mule アプリケーションを手動でデプロイします。 -
Runtime Manager REST API デプロイメント
この方法を使用すると、Runtime Manager REST API を使用してアプリケーションをデプロイできます。これにより、オンプレミス Mule インスタンスが Anypoint Runtime Manager アカウントにリンクされ、デプロイしたアプリケーションをさらに管理および監視できます。 -
Runtime Manager エージェントデプロイメント
この方法を使用すると、Runtime Manager エージェントを使用してアプリケーションをデプロイできます。これにより、ローカル API が公開され、その API をコールして、デプロイしたアプリケーションを管理および監視できます。
スタンドアロンデプロイメント戦略または Runtime Manager エージェントデプロイメント戦略を使用する場合、Mule Maven プラグインはドメインのデプロイもサポートします。
追加の操作により、複数のアプリケーションを並列にデプロイしたり、実行時にアプリケーションを更新したりできます。
前提条件
-
Mule Maven プラグインをプロジェクトに追加する
手順については、「Mule Maven プラグインを Mule プロジェクトに追加する」を参照してください。
スタンドアロン Mule Runtime Engine への Mule アプリケーションのデプロイ
plugin 要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダーの値をローカルの Mule Runtime Engine 情報で置き換えます。
<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>
<muleVersion>${app.runtime}</muleVersion>
</standaloneDeployment>
</configuration>
</plugin>
プロジェクトのフォルダーのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean deploy -DmuleDeploy
スタンドアロンデプロイメントのパラメーターリファレンス
| パラメーター | 説明 | 必須 |
|---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
ローカルマシンインスタンスで実行する Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
ローカルマシンにおける Mule インスタンスの場所。 |
はい |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
|
いいえ |
Runtime Manager REST API を使用した Mule アプリケーションのデプロイ
Mule Maven プラグインを使用すると、Runtime Manager REST API を使用してローカルの Mule インスタンスに Mule アプリケーションをデプロイできます。
前提条件
-
Runtime Manager で作成されたサーバー、サーバーグループ、またはクラスターが必要です。
-
サーバーを作成するには、「サーバーの追加」を参照してください。
-
サーバーグループを作成するには、「サーバーグループの作成」を参照してください。
-
クラスターを作成するには、「クラスターの作成」を参照してください。
-
Runtime Manager REST API を使用したデプロイ
plugin 要素内に Runtime Manager デプロイメント用の設定を追加し、プレースホルダーの値を Runtime Manager 情報で置き換えます。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<armDeployment>
<muleVersion>${app.runtime}</muleVersion>
<uri>https://anypoint.mulesoft.com</uri>
<target>${target}</target>
<targetType>${target.type}</targetType>
<username>${username}</username>
<password>${password}</password>
<environment>${environment}</environment>
<properties>
<key>value</key>
</properties>
</armDeployment>
</configuration>
</plugin>
プロジェクトのフォルダーのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean deploy -DmuleDeploy
Authentication のメソッド
Mule Maven プラグインを使用してアプリケーションをデプロイする場合には、デプロイメントプラットフォームに対して認証するためのログイン情報をいくつかの方法で提供できます。使用する認証方法に応じて、デプロイメント設定で指定するパラメーターが異なります。
| 認証方法 | 説明 | 設定パラメーター |
|---|---|---|
ユーザー名とパスワード |
Mule インスタンスがインストールされているサーバーのユーザー名とパスワードを使用して認証します。 |
|
サーバー |
Maven サーバーに保存されているログイン情報を使用します。Maven の |
|
認証トークン |
認証トークンを使用してプラットフォームにアクセスします。 |
|
接続アプリケーション |
接続アプリケーションを使用して Anypoint Platform と通信することで、プログラムによって認証を実行します。 |
|
設定パラメーターの詳細は、「Runtime Manager REST API デプロイメントのパラメーターリファレンス」を参照してください。
Runtime Manager REST API デプロイメントのパラメーターリファレンス
| パラメーター | 説明 | 必須 |
|---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
Anypoint Platform URI。Anypoint Platform PCE を使用している場合、Anypoint Platform インストールの URI を使用してこのパラメーターを指定します。 |
いいえ |
|
Mule インスタンスをインストールするサーバーのサーバー名。 |
はい |
|
デプロイ先の対象の種別。 有効な値:
|
はい |
|
Mule インスタンスをインストールするサーバーのユーザー名。 |
Anypoint Platform ログイン情報を使用してログインする場合のみ。 |
|
Mule インスタンスをインストールするサーバーのパスワード。 |
Anypoint Platform ログイン情報を使用してログインする場合のみ。 |
|
Mule インスタンスをインストールするサーバーの環境名。この値は、Runtime Manager アカウントで設定されたいずれかの環境に一致する必要があります。
|
はい |
|
デプロイメントのビジネスグループパス
この値は、 |
いいえ |
|
デプロイメントのビジネスグループ ID |
いいえ |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
Anypoint Platform ログイン情報を持つ Maven サーバー |
いいえ |
|
最上位要素
次に例を示します。
|
いいえ |
|
|
いいえ |
|
|
いいえ |
|
プラットフォームにアクセスするための認証トークンを指定します。ユーザー名とパスワードを設定する代わりに、この認証方式を使用できます。 |
認証トークンを使用してログインする場合のみ。 |
|
接続アプリケーションの |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
|
接続アプリケーションのシークレットキーを指定します。 |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
|
サポートされている唯一の接続種別、 |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
ログイン情報の暗号化
デプロイするときに暗号化ログイン情報を使用するには、Maven マスター暗号化パスワードおよび settings-security.xml ファイルをセットアップする必要があります。
-
Maven 設定のマスターパスワードを作成します。
mvn --encrypt-master-password <yourMasterPassword>
Maven はマスターパスワードを暗号化して返します。
{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=} -
~/.m2 リポジトリで
settings-security.xml ファイルを作成し、暗号化マスターパスワードを追加します。<settingsSecurity> <master>{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}</master> </settingsSecurity> -
Anypoint Platform パスワードを暗号化します。
mvn --encrypt-password <yourAnypointPlatformPassword>
Maven は Anypoint Platform パスワードを暗号化して返します。
{HTWFGH5BG9QmvJ1B=} -
暗号化 Anypoint Platform パスワードを
settings.xml ファイルの <server> セクションに追加します。<settings> ... <servers> ... <server> <id>my.anypoint.credentials</id> <username>my.anypoint.username</username> <password>{HTWFGH5BG9QmvJ1B=}</password> </server> ... </servers> ... </settings> -
設定デプロイメントで、
settings.xml ファイルで設定されたサーバー ID を挿入するログイン情報を参照します。<plugin> ... <configuration> ... <armDeployment> ... <server>my.anypoint.credentials</server> ... </armDeployment> ... </configuration> ... <plugin>ユーザー名とパスワードがデプロイメント設定で設定されていると、定義されたサーバー ID が上書きされるため、設定されていないことを確認してください。
Anypoint Private Cloud Edition での TLS エラーのトラブルシューティング
Anypoint Platform Private Cloud Edition インストールの Runtime Manager のインスタンスに接続しようとすると、プラグインはそのサーバーのログイン情報を検証します。トラストストアにサーバーログイン情報をインストールしていない場合、SSL エラーが発生します。この問題を回避するために、非セキュアモードでプラグインを実行できます。このモードでは、セキュリティ検証がスキップされます。armInsecure タグまたは arm.insecure システムプロパティを使用できます。
| 非セキュア接続を有効にするのは危険です。実行内容を理解し、オンプレミスインストールがローカルネットワークに隔離されている場合を除き、使用しないでください。 |
下の設定例を参照してください。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<armDeployment>
<target>${target}</target>
<targetType>${target.type}</targetType>
<username>${username}</username>
<password>${password}</password>
<environment>${environment}</environment>
<armInsecure>true</armInsecure>
</armDeployment>
</configuration>
</plugin>
Runtime Manager エージェントを使用した Mule アプリケーションのデプロイ
plugin 要素内に Runtime Manager エージェントデプロイメント用の設定を追加し、URI の値をリモートサーバー情報で置き換えます。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<agentDeployment>
<uri>http://localhost:9999/</uri>
</agentDeployment>
</configuration>
</plugin>
プロジェクトのフォルダーのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean deploy -DmuleDeploy
Runtime Manager エージェントデプロイメントのパラメーターリファレンス
| パラメーター | 説明 | 必須 |
|---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
Mule インスタンスをインストールするサーバーの URI。 |
はい |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
|
いいえ |
ドメインのデプロイ
スタンドアロンデプロイメント戦略または Runtime Manager エージェントデプロイメント戦略を使用する場合のみ、Mule Maven プラグインはドメインのデプロイをサポートします。
ドメインをデプロイするには、アプリケーションのデプロイ時に使用するものと同じ設定とデプロイメント手順を使用します。たとえば、スタンドアロンインスタンスにドメインをデプロイするには、次の手順を実行します。
-
plugin 要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダーの値をローカルの Mule Runtime Engine 情報で置き換えます。<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> <muleVersion>${app.runtime}</muleVersion> </standaloneDeployment> </configuration> </plugin> -
プロジェクトのフォルダーのコマンドラインから、ドメインをパッケージ化してデプロイゴールを実行します。
mvn clean deploy -DmuleDeploy
並列でのアプリケーションのデプロイ
オンプレミス Mule インスタンスに複数のアプリケーションを並列にデプロイできます。多数のアプリケーションをデプロイする場合は、並列にデプロイすると起動時間を短縮できます。起動順序は不特定であるため、デプロイメントが失敗しないように、アプリケーションが相互連動していないことを確認します。
並列処理は 20 で固定されています。
並列デプロイを有効にする手順は次のとおりです。
-
Mule アプリケーションを Mule Runtime Engine インスタンスの
/apps ディレクトリにパッケージ (エクスポート) します。 -
-M-Dmule.deployment.parallel オプションを使用して Mule を起動します。mule -M-Dmule.deployment.parallel
これらの手順を実行すると、Mule は /apps ディレクトリにあるすべてのアプリケーションを並列にデプロイします。
アプリケーションのアンデプロイ
Mule アプリケーションは、アプリケーションフォルダーを直接削除するのではなく、アプリケーションのアンカーファイルを削除することでアンデプロイできます。
アプリケーションのアンカーファイルのみを削除することで、次のようになります。
-
ホットデプロイメントレイヤーからの干渉を防止し、同時の競合アクションの余地をなくします。
-
一部のオペレーションシステムでアプリケーションの JAR ファイルがロックする問題を回避し、クリーンなシャットダウンとアンデプロイメントを可能にします。
たとえば、stockTrader アプリケーションが実行されている (アプリケーションフォルダーと $MULE_HOME/apps/stockTrader-anchor.txt ファイルが存在) 場合、アンカーファイルを削除するだけで実行時にアプリケーション Mule インスタンスから削除されます。アプリケーションフォルダーはアプリケーションの終了後に削除されます。
Mule アプリケーションをアンデプロイした後で、LoggerContext が停止するまで 15 秒のタイムアウトがあります。アプリケーションのログファイルはこのタイムアウトが経過した後にならないとリリースされません。この情報は、他のプロセスで使用されているファイルを削除できない Windows では重要です。
Mule アプリケーションをアンデプロイした後で、LoggerContext が停止するまで 15 秒のタイムアウトがあります。アプリケーションのログファイルはこのタイムアウトが経過した後にならないとリリースされません。この情報は、他のプロセスで使用されているファイルを削除できない Windows では重要です。
|
実行時のアプリケーションの更新
実行時の Mule アプリケーションの更新は、クラスの変更、エンドポイントの変更 (ポートの変更など)、フローの再設定を伴う複雑な変更になる場合があります。アプリケーションの更新では、最初にアプリケーションを適切にシャットダウンしてから、数秒以内にバックグラウンドでアプリケーションを再設定します。このプロセスは、ユーザーに対して透過的に行われます。
アプリケーションは、2 つの方法で更新できます。
-
展開された既存のアプリケーションフォルダーに変更を追加して、メイン設定ファイル (デフォルトではアプリケーションルートディレクトリにある
mule-config.xml) を操作する。
このオプションを有効にするには、システムプロパティ -M-Dmule.deployment.forceParseConfigXmls=true を使用して Runtime を起動します。 -
更新されたバージョンのアプリケーションを含む新しい
jar を $MULE_HOME/apps ディレクトリに追加する。Mule は、jar を既存アプリケーションの更新バージョンとして検出し、アプリケーションのクリーンな再デプロイを実行します。
Mule は、古いアプリケーションフォルダーへの変更を破棄します。新しいアプリケーションフォルダーは、jar から展開されたクリーンなアプリケーションフォルダーです。
どちらの方法も、既存のビルドツールと適切に統合されます。