Flex Gateway新着情報
Governance新着情報
Monitoring API Manager| 
 可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。  | 
Anypoint Exchange の Maven Facade API を使用すると、Apache Maven クライアントでは次のアセットタイプを含め Exchange アセットをパブリッシュおよびコンシュームできます。
コネクタ
Mule アプリケーション
例
テンプレート
ポリシー
カスタムアセット
Exchange の Maven Facade API では、アセットの削除はサポートされません。アセットを削除するには、Exchange ユーザーインターフェースまたは Exchange API を使用します。
Exchange の Maven Facade API では、<artifactId> と <version> 以外の項目で動的パラメーターはサポートされません。更新されたアセットに親が定義されている場合、動的パラメーターが適切な解釈されるには、親が有効で Exchange アセットがすでにアップロードされている必要があります。
新しいアセットは、組織のアセット制限に含まれます。
このドキュメントを活用するには、読者は Maven、プログラミングの概念、およびコンピューターやサーバーでのコマンドライン操作に精通している必要があります。
POM ファイルに必要なプラグイン org.mule.tools.maven.mule-maven-plugin を含めてください。POM ファイルまたは設定ファイルにプラグイン org.apache.maven.plugins.maven-deploy-plugin を含めないでください。必要なプラグインとの互換性がありません。
Anypoint Exchange の Maven Facade API バージョン 3 を使用してアセットを Exchange にパブリッシュする場合、Mule Maven プラグインバージョン 3.5.0 以降が必要です。
アセットをパブリッシュするには、一意のアーティファクト名と組織 ID が必要です。
US クラウドおよび EU クラウドでは、例のように少し異なる URL が使用されます。
Maven POM ファイルの要素を作成するには、組織 ID を判断する必要があります。
Anypoint Platform にログインし、[Access Management (アクセス管理)] をクリックします。
最上位組織またはビジネスグループの名前をクリックし、[organization information (組織情報)] 画面の組織 ID を参照します。
組織 ID をコピーして、次の例でプロジェクトの POM ファイルに組織 ID を追加できるようにします。
https://github.com/mulesoft-labs/exchange-documentation-samples にあるリポジトリで、Maven を使用して各アセットタイプをパブリッシュする例を参照してください。
Maven を使用してアセットをパブリッシュする手順はアセットタイプごとに少し異なります。アセットごとに異なる Maven プラグインが使用されるため、リポジトリ内の例を参照して、使用するアセットタイプに一致する例を探してください。たとえば、exchange-mule-maven-plugin を使用してカスタムアセットをパブリッシュし、mule-maven-plugin を使用して拡張機能をパブリッシュします。
次の例は、アプリケーション、例、テンプレートなど、Mule 4 アセットをパブリッシュする方法を示しています。
プロジェクトの POM ファイルで groupId を組織 ID に設定します。
 ...
 <groupId>ORGANIZATION_ID</groupId>
 ...
アセットをルート組織にパブリッシュする場合、グループ ID は組織 ID と同じです。 次の URL 形式を使用します。
https://maven.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven
EU では、次の形式を使用します。
https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven
カナダクラウドでは、次の形式を使用します。
https://maven.ca1.platform.mulesoft.com/api/v3/maven
日本クラウドでは、次の形式を使用します。
https://maven.jp1.platform.mulesoft.com/api/v3/maven
MuleSoft Government Cloud を使用している場合、次の形式を使用します。
https://maven.gov.anypoint.mulesoft.com/api/v2/organizations/ORGANIZATION_ID/maven
アセットをビジネスグループにパブリッシュする場合、グループ ID はビジネスグループ ID と同じです。 次の URL 形式を使用します。
https://maven.anypoint.mulesoft.com/api/v3/organizations/BUSINESS_GROUP_ID/maven
EU では、次の形式を使用します。
https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/BUSINESS_GROUP_ID/maven
MuleSoft Government Cloud を使用している場合、次の形式を使用します。
https://maven.gov.anypoint.mulesoft.com/api/v2/organizations/BUSINESS_GROUP_ID/maven
プロジェクトの POM ファイルで、mule-maven-plugin を含めて、正しい分類子 (この例では mule-application-example) を設定します。
この例では、アセットタイプは分類子から推定されるため設定する必要はありません。
...
<name>Hello World Application Example</name>
<description>A mule application example uploaded using Exchange Maven Facade v3</description>
<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools.maven</groupId>
            <artifactId>mule-maven-plugin</artifactId>
            <version>3.5.0</version>
            <extensions>true</extensions>
            <configuration>
                <classifier>mule-application</classifier>
            </configuration>
        </plugin>
    </plugins>
</build>
...
<classifier> 要素を設定して、アセットを Exchange で表示できるようにする必要があります。
name プロパティは必須です。これは、アセットの表示可能名を表します。GA (GroupId と AssetId の組み合わせ) の最初のバージョンをパブリッシュしている場合、アセット名は POM ファイルから取得されます。GA のバージョンがすでに 1 つ以上ある場合、name プロパティは無視されます。この名前はアセットポータルで変更できます。詳細は、「アセットの説明」を参照してください。
description プロパティは省略可能です。これは、アセットの説明を表します。GA (GroupId と AssetId の組み合わせ) の最初のバージョンをパブリッシュしている場合、アセットの説明は POM ファイルから取得されます。GA のバージョンがすでに 1 つ以上ある場合、description プロパティは無視されます。この説明はアセットポータルで変更できます。詳細は、「アセットの説明」を参照してください。
mule-maven-plugin が使用されている場合、mule-maven-plugin 設定でプロパティ <type> を app に設定し、<classifier> を mule-application に設定して Mule 3 アプリケーションをデプロイします。
Anypoint Studio 6.3 以降を使用して、Mule 3 の templates と examples をデプロイします。
Mule 4 アプリケーション場合、<type> 要素を指定しないでください。mule-maven-plugin 設定で、<classifier> を mule-application (デフォルト)、mule-application-template、mule-application-example、または mule-policy に設定します。
Mule 3 および Mule 4 アプリケーションは、Exchange アセットリストに表示されません。
プロジェクトの POM ファイルの配布管理セクションにリポジトリとして Maven ファサードを追加します。
 ...
  <distributionManagement>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </distributionManagement>
  ...
EU では、次の形式を使用します。
 ...
  <distributionManagement>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </distributionManagement>
  ...
MuleSoft Government Cloud を使用している場合、次の形式を使用します。
 ...
  <distributionManagement>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.gov.anypoint.mulesoft.com/api/v2/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </distributionManagement>
  ...
<id> および <name> 要素は、リポジトリやその他の組織識別子を識別するために作成する任意の名前です。<id> の値は pom.xml ファイル内と ~/.m2/settings.xml ファイル内で同じである必要があります。<id> の値により、pom.xml ファイルが組織の URL にログインするための情報と関連付けられます。
Maven の .m2 ディレクトリにある settings.xml ファイルを更新します。
Maven をインストールしたら、mvn clean コマンドで .m2 ディレクトリを作成します。ディレクトリは、macOS または Linux では ~/.m2、Windows では <default-drive>\Users\YOUR_USER_NAME\.m2 です。これには Anypoint Platform ログイン情報が含まれます。Maven が実行されると、Maven クライアントは設定ファイルを読み取ります。
settings.xml ファイルの例:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>Repository</id>
      <username>myusername</username>
      <password>mypassword</password>
    </server>
  </servers>
</settings>
次の Maven コマンドを使用して、アセットを Exchange にパブリッシュします。
mvn deploy
Exchange でアセット ID を検索し、アセットを見つけます。
Maven Facade API では、アセットを作成し、同じ要求内でアセットを説明する可変データを設定できます。アセットの可変データには、タグ、カスタム項目、カテゴリ、ドキュメントページが含まれます。
Exchange ドキュメントサンプルの GitHub リポジトリには、 ドキュメントとタグを使用した Mule アプリケーションテンプレートの完全な作成例が含まれています。
XML プロパティ key をカスタム項目またはカテゴリのキーに設定して、pom.xml ファイルのプロパティセクションでタグ、カスタム項目、およびカテゴリを宣言します。
    ...
    <properties>
        <categories key="categoryKey">someValue</categories>
        <fields key="fieldKey">someValue</fields>
        <tags>tag1,tag2,tag3</tags>
    </properties>
    ...
ドキュメントページを設定するには、src/main/resources にドキュメントディレクトリを作成します。ドキュメントディレクトリに、各ページを Getting Started.md などの名前のマークダウンファイルとして含めます。Getting Started をページのタイトルに置き換えます。契約条件ページを含めるには、terms.md というファイルにコンテンツを配置します。省略可能なサブディレクトリ resources に画像などのリソースを含めます。省略可能なファイル config.json のメインオブジェクトのルートにあるプロパティ pageOrder を使用して、ページの順序を指定します。
{
 "pageOrder": ["home", "Getting Started", "Examples"]
}
pom.xml プラグインセクションに Maven アセンブリプラグインを追加してドキュメントフォルダーをパッケージ化し、次のような Maven アセンブリプラグイン設定ファイルを作成します。
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <appendAssemblyId>true</appendAssemblyId>
    </configuration>
    <executions>
        <execution>
            <id>create-distribution</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>/src/main/resources/docs-assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>
src/main/resources/docs-assembly に assembly.xml ファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
   <id>docs</id>
   <formats>
       <format>zip</format>
   </formats>
   <includeBaseDirectory>false</includeBaseDirectory>
   <fileSets>
       <fileSet>
           <directory>${project.basedir}/src/main/resources/docs</directory>
           <outputDirectory>/</outputDirectory>
           <useDefaultExcludes>true</useDefaultExcludes>
       </fileSet>
   </fileSets>
</assembly>
新しいアセットバージョンの状態は development またはデフォルトの stable です。
stable 状態のアセットバージョンを作成するには、通常どおりに Maven を使用します。
development 状態のアセットバージョンを作成するには、Anypoint Exchange Maven Facade API バージョン 3 を使用して、アセットのバージョンを SNAPSHOT に設定します。この方法では、従来の API との後方互換性が確保されます。
SNAPSHOT アセットは永続的に development 状態であり、他の状態に昇格することはできません。
Anypoint Exchange Maven Facade API バージョン 1 またはバージョン 2 でパブリッシュされたバージョン SNAPSHOT のアセットの状態は stable です。
development 状態の SNAPSHOT テンプレートアセットのアップロードの例を次に示します。
ターミナルで次の操作を実行します。
Execute (実行): git clone https://github.com/mulesoft-labs/exchange-documentation-samples.git
Execute (実行): cd exchange-documentation-samples/template-snapshot
ファイル pom.xml を編集し、値 YOUR_ORG_ID、YOUR_GROUP_ID、YOUR_ASSET_ID をアセットの organizationId、groupId、assetId に置き換えます。
Execute (実行): mvn clean deploy
Exchange ホームページを開き、development 状態のテンプレートを表示します。
mvn clean deploy を複数回実行すると、アセットはエラーなしで上書きされます。
注意: development 状態のアセットのうち SNAPSHOT バージョンでないアセットは Maven を介してコンシュームできません。
exchange-mule-maven-plugin プラグインを使用して、カスタムアセットをパブリッシュします。このプラグインの最新バージョンは 0.0.23 です。
この例は、pom.xml の build セクションを示しています。
<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools.maven</groupId>
            <artifactId>exchange-mule-maven-plugin</artifactId>
            <version>0.0.23</version>
            <executions>
                <execution>
                    <id>validate</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>exchange-pre-deploy</goal>
                    </goals>
                </execution>
                <execution>
                    <id>deploy</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>exchange-deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
親 POM は Exchange にカスタムアセットとしてパブリッシュされます。カスタムアセットをパブリッシュするには、前のセクションを参照してください。 Mule Maven プラグインを使用して Mule アプリケーションなどの Maven プロジェクトをパブリッシュする必要があり、Maven プロジェクトが、exchange-mule-maven-plugin がすでに含まれている親 Pom に連動している場合、 継承を回避する必要があります。
<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools.maven</groupId>
            <artifactId>exchange-mule-maven-plugin</artifactId>
            <version>0.0.23</version>
            <inherited>false</inherited>
            <executions>
                <execution>
                    <id>validate</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>exchange-pre-deploy</goal>
                    </goals>
                </execution>
                <execution>
                    <id>deploy</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>exchange-deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
ビルドがデプロイメントフェーズで状況コード 412 (前提条件失敗) で失敗した場合、<goal>exchange-pre-deploy</goal> は実行されていません。このエラーを修正するには、目標がプラグインの実行セクション内で設定されていることを確認します。
エラーは次のようになります。
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.871 s
[INFO] Finished at: 2020-11-09T12:11:54-03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project hello-world-pom: Failed to deploy artifacts: Could not transfer artifact 1da12ec1-7614-43a3-bf24-ff754cab8ddf:hello-world-pom:pom:1.0.3 from/to repository-id ([https://maven.anypoint.mulesoft.com/api/v3/organizations/orgId/maven/](http://localhost:8088/api/v3/organizations/1da12ec1-7614-43a3-bf24-ff754cab8ddf/maven/)): Transfer failed for [https://maven.anypoint.mulesoft.com](http://localhost:8088/api/v3/organizations/1da12ec1-7614-43a3-bf24-ff754cab8ddf/maven/)[/api/v3/organizations/](http://localhost:8088/api/v3/organizations/1da12ec1-7614-43a3-bf24-ff754cab8ddf/maven/1da12ec1-7614-43a3-bf24-ff754cab8ddf/hello-world-pom/1.0.3/hello-world-pom-1.0.3.pom)[orgId](http://localhost:8088/api/v3/organizations/1da12ec1-7614-43a3-bf24-ff754cab8ddf/maven/)[/maven/groupId/assetId/version/filename](http://localhost:8088/api/v3/organizations/1da12ec1-7614-43a3-bf24-ff754cab8ddf/maven/1da12ec1-7614-43a3-bf24-ff754cab8ddf/hello-world-pom/1.0.3/hello-world-pom-1.0.3.pom) 412 -> [Help 1]
統合アセットのパブリッシュとコンシュームには、トークン認証または接続アプリケーション認証が必要です。
トークン認証を使用する手順は、次のとおりです。
SAML アサーションを使用して API ベアラートークンを取得します。
これが自分のアクセストークンになります。
C:\Users\YOUR_USER_NAME\.m2\settings.xml (Windows) または ~/.m2/settings.xml (macOS または Linux) で settings.xml ファイルを開きます。
<username> の値は変更しないでください。
この値はプラットフォームにトークンを使用していることを伝えます。
<password> の値を自分のアクセストークンに設定します。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
          http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>Repository</id>
      <username>~~~Token~~~</username>
      <password>01234567-89ab-cdef-0123-456789abcdef</password>
    </server>
  </servers>
</settings>
settings.xml ファイルを保存します。
接続アプリケーション認証を使用する手順は、次のとおりです。
接続アプリケーションを作成します。
基本認証を指定し、~~~Client~~~ としてユーザー名、clientID~?~clientSecret としてパスワードを定義します。
clientID をクライアント ID に置き換えます。
clientSecret をクライアントシークレットに置き換えます。
接続アプリケーションをリポジトリのファイル settings.xml に含めます。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    ...
    <server>
      <id>Repository</id>
      <username>~~~Client~~~</username>
      <password>clientID~?~clientSecret</password>
    </server>
  </servers>
</settings>
Java ライブラリと POM ファイルを Exchange カスタムアセットとしてパブリッシュします。
Maven Central または MuleSoft Maven リポジトリに存在しない連動関係を宣言する Mule 4 拡張機能は現在サポートされていません。
Maven Facade を使用して、アセットを Exchange にパブリッシュすると、Exchange にドキュメントポータルが自動的に作成され、通常どおりにアセットを文書化できます。
Maven Facade を使用して、コネクタ、Mule アプリケーション、REST API を含め、Exchange にパブリッシュされたアセットをコンシュームできます。Exchange アセットをコンシュームするには、アセットのグループ ID、アーティファクト ID、およびバージョンをプロジェクトの pom.xml ファイルの dependencies セクションに追加し、Maven ファサードをリポジトリとして repositories セクションに追加します。
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
 ...
  <dependencies>
    <dependency>
      <groupId>org.mule.modules</groupId>
      <artifactId>mule-module-metoo</artifactId>
      <version>1.0.0</version>
    </dependency>
  </dependencies>
 ...
  <repositories>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </repositories>
 ...
</project>
ORGANIZATION_ID を組織 ID に置き換えます。
https://maven.anypoint.mulesoft.com/api/v3/maven はルート組織にパブリッシュするデフォルトであるため、<url> 値で有効な URL として使用できます。EU では、URL として https://maven.eu1.anypoint.mulesoft.com/api/v3/maven を使用します。MuleSoft Government Cloud を使用している場合、URL として https://maven.gov.anypoint.mulesoft.com/api/v2/maven を使用します。
EU では、<repositories> セクションは次のようになります。
  <repositories>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </repositories>
MuleSoft Government Cloud を使用している場合、<repositories> セクションは次のようになります。
  <repositories>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.gov.anypoint.mulesoft.com/api/v2/organizations/ORGANIZATION_ID/maven</url>
      <layout>default</layout>
    </repository>
  </repositories>