---
schema_version: "1"
id: bf83d5ccea90d727d1c7af784f8ce78fa24a97d44096350d04106c3ab2342cde
title: 外部ライブラリ
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/external-libs.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/external-libs
source_site: docs.mulesoft.com
content_type: documentation
content_hash: b84289d3d0feefad0e99a04e9c423a2f1fa384997be6750e0e3a01a0467c396e
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# 外部ライブラリ

コネクタおよびモジュールは、ライセンス、バージョン設定、カスタムライブラリなどの関係でコネクタ内にパッケージ化できない外部ライブラリに依存する場合があります。

同じベースコードでいくつかの異なるドライバーや同じドライバーのいくつかの異なるバージョンに対応する例としては、Database Connector があります。この問題の解決策は、接続先となるデータベースで使用する JDBC ドライバーを特定するように Database Connector のユーザーに依頼することです。

## [](#使用方法)使用方法

コネクタやモジュールが Mule アプリケーションで動作するために外部ライブラリを必要とするということを宣言するには、​`@Extension`​、​[設定](https://docs.mulesoft.com/jp/mule-sdk/1.1/configs)​、または ​[ConnectionProvider](https://docs.mulesoft.com/jp/mule-sdk/1.1/connections)​ クラスに ​`@ExternalLib`​ アノテーションを付加して、Mule アプリケーション開発者がこれらのライブラリの設定方法を理解しやすいようにプロパティを提供する必要があります。

<table><tbody><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">ユーザーがライブラリをより簡単に設定できるように、アノテーションが提供するすべてのプロパティに値を設定しておくことを強くお勧めします。次に例を示します。</td></tr></tbody></table>

+

```java
@ExternalLib(name = "MySQL JDBC Driver",
description = "A JDBC driver that supports connection to the MySQL Database",
nameRegexpMatcher = "(.*)\\.jar",
requiredClassName = "com.mysql.jdbc.Driver",
coordinates = "mysql:mysql-connector-java:5.1.44")
public class MySqlConnectionProvider implements ConnectionProvider<Connection> {
  //
}
```

\+ コネクタは複数の外部ライブラリを必要とする場合もあります。​`@ExternalLib`​ アノテーションは、必要なだけ何度でも使用できます。

### [](#プロパティ)プロパティ

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<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>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>name</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">UI に表示するわかりやすい名前。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>description</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">外部ライブラリの簡単な説明。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>nameRegexpMatcher</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ライブラリのファイル名と一致し、ユーザーが指定したライブラリが正しいことを検証するために使用する正規表現。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>requiredClassName</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<em>(Java ライブラリのみ)</em>​ 外部ライブラリに存在する ​<code>Class</code>​ の名前。ユーザーが指定したライブラリが正しいことを検証するために使用します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>type</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enum (列挙)</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
<ul>
<li>
<p><code>NATIVE</code>​: Native ライブラリの連動関係</p>
</li>
<li>
<p><code>JAR</code>​: JAR ファイルの連動関係</p>
</li>
<li>
<p><code>DEPENDENCY</code>​: 外部連動関係 (Maven を使用している場合の ​<code>pom.xml</code>​ に指定されている取得済みの連動関係など)</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>カスタムコネクタについては、すべての Maven 連動関係に Anypoint Exchange からアクセスできる必要があります。非公開または公開リポジトリにパブリッシュされた Maven 連動関係には Anypoint Exchange からアクセスできません。</p>
</div>
<div class="paragraph">
<p>カスタムコネクタをパブリッシュする前に Maven 連動関係をパブリッシュする場合は、次のいずれかのオプションを使用します。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Maven 連動関係を Anypoint Exchange にパブリッシュして、Anypoint Platform 組織で使用できるようにする。</p>
</li>
<li>
<p>Maven 連動関係を  <a href="https://maven.apache.org/repository/guide-central-repository-upload.html">Maven Central リポジトリ</a>​にパブリッシュして、一般公開する。</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>MuleSoft リポジトリをパブリッシュに使用することはできません。</p>
</div>
</td>
</tr>
</tbody></table>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>coordinates</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">必須ライブラリがある場所を示す Maven 座標の提案。Maven の表記規則 (​<code>groupId:artifactId:packaging:classifier:version</code>​) に準拠している必要があります。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<code>optional</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Boolean (ブール)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コネクタやモジュールが動作するためにライブラリが必要でないかどうか。</p></td>
</tr>
</tbody>
</table>