---
schema_version: "1"
id: 9104050c16791367f6d5725508b147b71757b747d8c2081800fb216d17a7eb51
title: Mule アプリケーションをパッケージする
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.7/package-a-mule-application.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.7/package-a-mule-application
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 298cd18cc5bb50c625400a8bbabab406116e90cdc2f3395236185d8fb6294733
description: MuleSoft Documentation Site
release: "4.7"
latest: false
---
# Mule アプリケーションをパッケージする

<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 アプリケーションは Mule Maven プラグイン (コマンドライン) または Anypoint Studio を使用してパッケージできます。この手順についての詳細は、​[「Studio からのプロジェクトのエクスポート」](https://docs.mulesoft.com/studio/import-export-packages#export-project-studio)​を参照してください。

Mule アプリケーションはデプロイ可能な JAR ファイルにパッケージされ、このパッケージを後から実行中の Mule Runtime Engine にデプロイできます。パッケージには、アプリケーションによって必要とされる JAR ファイルであるかそのプラグインによって必要とされる JAR ファイルであるかに関係なく、アプリケーションおよびそのすべての連動関係が含まれます。

すべての Mule アプリケーションには 2 つの記述子があります。これらの記述子により、Mule アプリケーションの連動関係が定義されます。

- `mule-artifact.json`​ ファイル。  
    このファイルは、アプリケーションがどのように構成されるかを記述します。
- `pom.xml`​ ファイル。  
    このファイルは、パッケージが正常に機能するために必要なすべての連動関係を記述します。

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

Mule 4 アプリケーションは次の Anypoint Studio と Mule Maven プラグインバージョンと互換性があります。

- Anypoint Studio 7.x
- Mule Maven プラグイン 3.x

## [](#前提条件)前提条件

- Mule Maven プラグインをプロジェクトに追加する
    
    手順については、​[「Mule Maven プラグインを Mule プロジェクトに追加する」](https://docs.mulesoft.com/jp/mule-runtime/4.7/mmp-concept#add-mmp)​を参照してください。

## [](#mule-アプリケーション構造リファレンス)Mule アプリケーション構造リファレンス

デザインタイムに、Mule アプリケーションには少なくとも次の 3 つの基本的なコンポーネントが必要です。

<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"><p class="tableblock"><code>src</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Folder (フォルダー)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アプリケーションの本番ソースコードおよびテストのソースディレクトリ。<br>
このフォルダーについては、下記のリファレンスを参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pom.xml</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Descriptor (記述子)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule アプリケーションの POM ファイル。<br>
このファイルは、アプリケーションのすべての必須の連動関係を記述します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mule-artifact.json</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Descriptor (記述子)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule アプリケーションの mule-artifact ファイル。<br>
このファイルは、Mule アプリケーションがどのように構成されるかを記述します。</p></td>
</tr>
</tbody>
</table>

これらの 3 つのコンポーネントは必須です。このいずれか 1 つが欠落すると、プロジェクトをデプロイ可能な JAR ファイルにパッケージできません。  
さらに、パッケージプロセスでは Mule アプリケーションのルートフォルダーにある他のディレクトリまたはファイルが考慮されません。

## [](#ソースディレクトリリファレンス)ソースディレクトリリファレンス

`src`​ ディレクトリには ​`main`​ と ​`test`​ の 2 つの主要なフォルダーがあります。  
プラグインはアプリケーションをパッケージするときに ​`src`​ 内の他のディレクトリを考慮しません。

### [](#srcmain)src/main

src/main はアプリケーションのすべての本番ソースコードのルートフォルダーです。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Folder (フォルダー)</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"><p class="tableblock"><code>src/main/mule</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">source (ソース)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule 設定ファイルのルートフォルダー。<br>
Java パッケージの形式で、ネストされたフォルダーを含むことができます。</p>
<p class="tableblock">このフォルダーは必須です。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>src/main/resources</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">resource (リソース)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">XML、JSON、プロパティファイルなどのアプリケーションリソースが含まれます。<br>
ここに配置された Jar ファイルはアプリケーションクラスローダーによって読み込まれますが、プレーンファイルリソースとして読み込まれます。</p></td>
</tr>
</tbody>
</table>

パッケージプロセスにより、​`src/main/mule`​ および ​`src/main/resources`​ 内のすべてのファイルがバイナリパッケージのルートディレクトリに送信されます。  
`src/main/mule`​ 内のネストされたフォルダーは、バイナリパッケージのルートディレクトリ内のディレクトリとして保持されます。

### [](#srctest)src/test

src/test はアプリケーションのすべてのテストソースコードのルートフォルダーです。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Folder (フォルダー)</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"><p class="tableblock"><code>src/test/java</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">source (ソース)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アプリケーションのカスタム Java コードを検証するために使用されるテストクラスのルートフォルダーです。<br>
通常の Java アプリケーションの規則に従います。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>src/test/munit</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">source (ソース)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MUnit ソースコードが含まれます。<br>
パッケージの形式で、ネストされたフォルダーを含むことができます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>src/test/resources</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">resource (リソース)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">XML、JSON、プロパティファイルなどのリソースが含まれます。<br>
このフォルダーには、​<code>mule-config.xml</code>​ で参照されるメタデータを記述するファイルも含まれます。</p></td>
</tr>
</tbody>
</table>

## [](#mule-アプリケーションをパッケージする)Mule アプリケーションをパッケージする

プロジェクトのフォルダーのコマンドラインから、パッケージゴールを実行します。

```console
mvn clean package
```

このプラグインはアプリケーションをプロジェクトのフォルダー内の対象ディレクトリにパッケージし、デプロイ可能な JAR ファイルを作成します。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><code>pom.xml</code>​ に連動関係バージョンの競合がある場合、最新バージョンが使用されます。</td></tr></tbody></table>

## [](#anypoint-studio-にインポートするアプリケーションパッケージの作成)Anypoint Studio にインポートするアプリケーションパッケージの作成

Anypoint Studio にインポートできる JAR ファイルを生成するには、​`-DattachMuleSources`​ パラメーターを使用してアプリケーションをパッケージ化し、デプロイ可能ファイルをオープン Mule プロジェクトとしてワークスペースに再インポートするために Studio で必要とされるソースファイルおよびメタデータを含める必要があります。

プロジェクトのフォルダーのコマンドラインから、次のコマンドを実行します。

```console
mvn clean package -DattachMuleSources
```

`-DattachMuleSources`​ パラメーターにより、デザインタイムにアプリケーション構造の正確なコピーを使用して ​`META-INF`​ ディレクトリ内に ​`mule-src`​ フォルダーを追加するようプラグインに指示されます。このオプションにより、Mule Runtime Engine にデプロイできる機能する Mule のデプロイ可能なアーカイブファイルを作成するために必要なプロジェクトモジュールおよび連動関係もパッケージ化されます。

## [](#軽量パッケージの作成)軽量パッケージの作成

Mule Runtime Engine で Mule アプリケーションを実行するために必要な実際のモジュールおよび外部連動関係のバンドルをスキップして、Anypoint Studio に JAR パッケージをインポートし直すために必要なソースファイルおよびメタデータのみの軽量パッケージを作成できます。

プロジェクトのフォルダーのコマンドラインから、次のコマンドを実行します。

```console
mvn clean package -DlightweightPackage
```

このパラメーターを指定すると、プラグインによって Mule アプリケーションの ​`pom.xml`​ ファイルで宣言された連動関係を含まない軽量 JAR ファイルが作成されます。この JAR ファイルを Mule Runtime Engine にデプロイすることはできず、Mule アプリケーションのソースファイルのみをアーカイブすることができます。この Maven パラメーターの結果は、Mule アプリケーションを Anypoint Studio からエクスポートするときに ​**\[Include Project Modules and Dependencies (プロジェクトモジュールと連動関係を含める)\]**​ をオフにするのと同じです。

## [](#複数のパラメーターの指定)複数のパラメーターの指定

パラメーターを結合して、Anypoint Studio にパッケージをインポートし直すためのソースファイルおよびメタデータも含まれる軽量 Mule アプリケーションパッケージを作成することもできます。

プロジェクトのフォルダーのコマンドラインから、次のコマンドを実行します。

```console
mvn clean package -DattachMuleSources -DlightweightPackage
```

## [](#アプリケーションパッケージからファイルを除外する)アプリケーションパッケージからファイルを除外する

アプリケーションをパッケージするときに、特定のファイルまたはディレクトリを除外できます。プロジェクトのルートディレクトリで ​`_muleExclude`​ ファイルを作成し、そのコンテンツを編集して除外ルールを設定します。

`_muleExclude`​ ファイルの各行で、 [glob のパターン](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob)​に従うルールが指定されます。

たとえば、2 つの除外ルールが含まれる次の ​`_muleExclude`​ ファイルを考えます。

fileToBeExcluded.json
\*\*/src/main/resources/local\_directory

- 最初の行は、すべてのディレクトリ内の ​`fileToBeExcluded.json`​ という名前のすべてのファイルがアプリケーションパッケージから除外されることを示しています。
- 2 行目は、​`src/main/resources`​ にある ​`local_directory`​ という名前のディレクトリのみがパッケージから除外されることを示しています。  
    `**/src/main/resources/local_directory`​ が ​`local_directory`​ に置き換えられている場合、プロジェクト内の ​`local_directory`​ という名前のすべてのディレクトリがアプリケーションパッケージから除外されます。

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

- [Studio からのプロジェクトのエクスポート](https://docs.mulesoft.com/studio/import-export-packages#export-project-studio)
- [Mule Maven プラグイン](https://docs.mulesoft.com/jp/mule-runtime/4.7/mmp-concept)