Maven を使用した Exchange アセットのパブリッシュとデプロイ

Anypoint Exchange の Maven Facade​ を使用して、Maven クライアントは次の Exchange アセットをパブリッシュおよびコンシュームできます。

  • コネクタ

  • Mule アプリケーション

  • テンプレート

  • ポリシー

前提条件

このドキュメントは、読者が Maven、プログラミングの概念、およびコンピュータやサーバでのコマンドライン操作に精通していることを前提としています。

注意: アセットを公開するには、一意のアーティファクト名と組織 ID が必要です。

組織 ID を参照する

Maven POM ファイルの要素を作成するには、組織 ID を判断する必要があります。

  1. Anypoint Platform にログインし、[Access Management (アクセス管理)] をクリックします。

  2. 最上位またはビジネスグループの組織名をクリックし、[Organization Info (組織情報)] 画面の [Organization Info (組織 ID)] を参照します。

  3. その組織 ID をコピーし、プロジェクトの POM ファイルをセットアップする方法を示すサンプルに追加します。

Maven を使用して Exchange にアセットをパブリッシュする

このトピックの情報を使用して、コネクタを含む Mule 3 および Mule 4 のアセットをパブリッシュできます。

  1. プロジェクトの POM ファイルで、Maven プロジェクトの groupId を自分の組織 ID に変更します。

     ...
     <groupId>ORGANIZATION_ID</groupId>
     ...

    アセットをマスタ組織にパブリッシュする場合、グループ ID は組織 ID と同じです。 次の URL 形式を使用します。

    https://maven.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/maven

    EU では、次の形式を使用します。

    https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/maven

    アセットをビジネスグループにパブリッシュする場合、グループ ID はビジネスグループ ID と同じです。 次の URL 形式を使用します。

    https://maven.anypoint.mulesoft.com/api/v1/organizations/BUSINESS_GROUP_ID/maven

    EU では、次の形式を使用します。

    https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/BUSINESS_GROUP_ID/maven

  2. プロジェクトの POM ファイルのプロパティ部分にアセットタイプを追加します。例:

     ...
     <properties>
      ...
      <mule.version>3.9.0</mule.version>
      <mule.tools.version>1.2</mule.tools.version>
      <type>app</type>
     </properties>
     ...

    注意:

    • 重要:​ ​<classifier>​ 要素は Exchange でアセットを表示するように設定されている必要がある。

    • Mule 3 アプリケーションは、プロパティ <type> を ​app​ に設定してデプロイ可能。そのアセットは Exchange アセットリストに表示されません。

    • Mule 3 の ​templates​ と ​examples​ は Anypoint Studio 6.3 以上を使用してデプロイする必要がある。

    • Mule 3 または Mule 4 コネクタの場合、​<type>​ 値を指定しない。Maven Facade によって自動的にタイプが判断されます。

    • Mule 4 アセットの場合、<type> 要素を指定しない。​mule-maven-plugin​ 設定で、​<classifier>​ を ​mule-application​ (デフォルト)、​mule-application-template​、​mule-application-example​、または ​mule-policy​ に設定します。

      例:

      ...
      <plugin>
          <groupId>org.mule.tools.maven</groupId>
          <artifactId>mule-maven-plugin</artifactId>
          <version>${mule.maven.plugin.version}</version>
          <extensions>true</extensions>
          <configuration>
              <classifier>mule-application-example</classifier>
          </configuration>
      </plugin>
      ...
  3. プロジェクトの POM ファイルの配布管理セクションにリポジトリとして Maven ファサードを追加します。

     ...
      <distributionManagement>
        <repository>
          <id>Repository</id>
          <name>Corporate Repository</name>
          <url>https://maven.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/maven</url>
          <layout>default</layout>
        </repository>
      </distributionManagement>
      ...

    EU では、POM ファイルは次のようになります。

     ...
      <distributionManagement>
        <repository>
          <id>Repository</id>
          <name>Corporate Repository</name>
          <url>https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/ORGANIZATION_ID/maven</url>
          <layout>default</layout>
        </repository>
      </distributionManagement>
      ...

    注意:​ <id> および <name> 要素は、リポジトリやその他の組織識別子を識別するために作成した任意の名前です。<id> の値は pom.xml ファイル内と ~/.m2/settings.xml ファイル内で同じである必要があります。<id> により、pom.xml ファイルが組織の URL にログインするための情報と関連付けられます。

  4. Maven の .m2 ディレクトリにある settings.xml ファイルを更新します。Maven をインストールしたら、​mvn clean​ コマンドで .m2 ディレクトリを作成します。Mac または Linux では、このディレクトリは ​~/.m2​ にあり、Windows では、このディレクトリは Anypoint Platform ログイン情報を含む ​<default-drive>\Users\YOUR_USER_NAME\.m2​ にあります。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>
  5. 次の Maven コマンドを使用して、アセットを Exchange にパブリッシュします。

    mvn deploy
  6. 次の URL 構文を使用して、アセットの場所を共有できます。

    https://anypoint.mulesoft.com/exchange/api/v1/assets/ORGANIZATION_ID/ASSET_ID

    ​ORGANIZATION_ID​ を Exchange の組織 ID に置き換え、​ASSET_ID​ をアセット ID に置き換えます。

    EU の場合、共有 URL は次のようになります。

    https://eu1.anypoint.mulesoft.com/exchange/api/v1/assets/ORGANIZATION_ID/ASSET_ID

統合アセットをパブリッシュする

  1. Anypoint Platform にログインし、次の URL をブラウザのアドレスバーにコピーしてアクセストークンを取得します。

    https://anypoint.mulesoft.com/accounts/api/profile
  2. 表示された値で ​access_token​ を検索します。

  3. アクセストークンを ​~/.m2/settings.xml​ (Mac または Linux) または ​C:\Users\YOUR_USER_NAME\.m2\settings.xml​ (Windows) ファイルに追加します。

    <?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>ACCESS_TOKEN</password>
        </server>
      </servers>
    </settings>
<username>​ 内の値はリテラルです。変更しないでください。この値はプラットフォームにトークンを使用していることを伝えます。トークンは ​<password>ACCESS_TOKEN</password>​ で設定します。

Exchange 外部の連動関係

現在、Java ライブラリと POM ファイルは Exchange アセットとしてはパブリッシュできません。

Maven Central または MuleSoft Maven リポジトリに存在しない連動関係を宣言する Mule 4 拡張機能は現在サポートされていません。

Exchange アセットを文書化する

Maven Facade を使用して、コネクタ、サンプル、テンプレートをパブリッシュすると、Exchange にドキュメントポータルが自動的に作成され、​通常どおりにそれらを文書化​できます。

Maven を使用して Exchange アセットをコンシュームする

Maven Facade を使用して、Exchange でパブリッシュされたコネクタ、Mule アプリケーション、REST API をコンシュームできます。Exchange アセットをコンシュームするには、アセットの groupID、artifactID、および version をプロジェクトの 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/v1/organizations/ORG_ID/maven</url>
      <layout>default</layout>
    </repository>
  </repositories>
 ...
</project>

​ORG_ID​ を組織 ID に置き換えます。

https://maven.anypoint.mulesoft.com/api/v1/maven​ はマスタ組織にパブリッシュするデフォルトであるため、​<url>​ 値で有効な URL として使用できます。EU では、URL として ​https://maven.eu1.anypoint.mulesoft.com/api/v1/maven​ を使用します。

EU では、<repositories> セクションは次のようになります。

  <repositories>
    <repository>
      <id>Repository</id>
      <name>Corporate Repository</name>
      <url>https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/ORG_ID/maven</url>
      <layout>default</layout>
    </repository>
  </repositories>

Was this article helpful?

💙 Thanks for your feedback!