第11章 Maven プラグインを使用した Service Registry コンテンツの管理


本章では、Service Registry Maven プラグインを使用してレジストリーに保存されているアーティファクトを管理する方法を説明します。

前提条件

  • 1章Service Registry の概要 を参照してください。
  • Service Registry が環境にインストールされ、実行されている。
  • Maven が使用している環境にインストールおよび設定されている。

11.1. Service Registry Maven プラグインを使用したアーティファクトの管理

Service Registry Maven プラグインを使用して、開発ビルドの一部としてレジストリーアーティファクトをアップロードまたはダウンロードできます。たとえば、このプラグインは、スキーマの更新がクライアントアプリケーションと互換性があることをテストおよび検証するのに便利です。

Maven プラグインを使用したアーティファクトの登録

おそらく、Maven プラグインの最も一般的なユースケースは、ビルド中にアーティファクトを登録することです。これは、register 実行目標を使用して実現できます。

手順

  • Maven pom.xml ファイルを更新して、 apicurio-registry-maven-plugin を使用してアーティファクトを登録します。以下の例は、Apache Avro スキーマの登録を示しています。

    <plugin>
      <groupId>io.apicurio</groupId>
      <artifactId>apicurio-registry-maven-plugin</artifactId>
      <version>${registry.version}</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>register</goal> 1
          </goals>
          <configuration>
            <registryUrl>http://my-cluster-service-registry-myproject.example.com/api</registryUrl> 2
            <artifactType>AVRO</artifactType>
            <artifacts>
              <schema1>${project.basedir}/schemas/schema1.avsc</schema1> 3
            </artifacts>
          </configuration>
        </execution>
      </executions>
    </plugin>
    1
    スキーマアーティファクトをレジストリーにアップロードするための実行目標として register を指定します。
    2
    /api エンドポイントで Service Registry URL を指定する必要があります。
    3
    アーティファクト ID と場所を使用して複数のアーティファクトをアップロードできます。

Maven プラグインを使用したアーティファクトのダウンロード

Maven プラグインを使用して Service Registry からアーティファクトをダウンロードすることもできます。これは、たとえば、登録されたスキーマからコードを生成する場合などに便利です。

手順

  • Maven pom.xml ファイルを更新して、apicurio-registry-maven-plugin を使用してアーティファクトをダウンロードします。以下の例は、アーティファクト ID による単一のスキーマのダウンロードを示しています。

    <plugin>
    <groupId>io.apicurio</groupId>
    <artifactId>apicurio-registry-maven-plugin</artifactId>
    <version>${registry.version}</version>
    <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
          <goal>download</goal> 1
        </goals>
        <configuration>
          <registryUrl>http://my-cluster-service-registry-myproject.example.com/api</registryUrl> 2
          <ids>
            <param1>schema1</param1> 3
          </ids>
          <artifactExtension>.avsc</artifactExtension> 4
          <outputDirectory>${project.build.directory}</outputDirectory>
       </configuration>
     </execution>
    </executions>
    </plugin>
    1
    実行目標として download を指定します。
    2
    /api エンドポイントで Service Registry URL を指定する必要があります。
    3
    アーティファクト ID を使用すると、複数のアーティファクトを指定したディレクトリーにダウンロードできます。
    4
    プラグインは適切なファイル拡張子の選択を自動的に試みますが、< artifactExtension> を使用して上書きできます

Maven プラグインを使用したアーティファクトのテスト

実際にアーティファクトを変更せずに、アーティファクトをが登録できることを確認する場合があります。これは、ルールが Service Registry に設定されている場合に最も便利です。アーティファクトのコンテンツが設定済みのルールのいずれかに違反する場合、アーティファクトのテストに失敗します。

注記

アーティファクトがテストに合格した場合でも、Service Registry にはコンテンツが追加されません。

手順

  • Maven pom.xml ファイルを更新して、 apicurio-registry-maven-plugin を使用してアーティファクトをテストします。Apache Avro スキーマのテストの例を以下に示します。

    <plugin>
      <groupId>io.apicurio</groupId>
      <artifactId>apicurio-registry-maven-plugin</artifactId>
      <version>${registry.version}</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>test-update</goal> 1
          </goals>
          <configuration>
            <registryUrl>http://my-cluster-service-registry-myproject.example.com/api</registryUrl> 2
            <artifactType>AVRO</artifactType>
            <artifacts>
              <schema1>${project.basedir}/schemas/schema1.avsc</schema1> 3
            </artifacts>
          </configuration>
        </execution>
      </executions>
    </plugin>
    1
    スキーマアーティファクトをテストするための実行目標として test-update を指定します。
    2
    /api エンドポイントで Service Registry URL を指定する必要があります。
    3
    アーティファクト ID と場所を使用して複数のアーティファクトをテストできます。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.