Bazelisk(Automotive)を使用してクライアント ライブラリを生成する

クライアント ライブラリは、API の言語固有のインターフェースです。このドキュメントでは、Bazel のランチャーである Bazelisk を使用して、Routes API for Automotive のクライアント ライブラリをさまざまなプログラミング言語で生成する方法について説明します。Bazelisk では、正しいバージョンの Bazel を使用してビルドコマンドを実行できます。

ライブラリの生成に必要なコードは、非公開の Gerrit リポジトリにホストされています。クライアント ライブラリの仕組みについては、クライアント ライブラリの説明をご覧ください。

前提条件

ソフトウェアの要件

以下をインストールします。

権限要件

  • リポジトリへのアクセスは、会社の代表者によって管理されている特定の <partner>@google.com グループのメンバーに与えられます。このグループへの追加については、貴社の担当者または Google ビジネス パートナーにお問い合わせください。

ステップ 1: Gerrit にアクセスする

Gerrit にアクセスするには:
  1. 前提条件セクションに記載されているリポジトリ権限の要件を完了していることを確認します。
  2. Google アカウントの作成の手順に沿って、会社のメールアドレスで Google アカウントを作成します。
    • Google アカウントを作成する場合は、Google アカウントのログインページにアクセスする前に、gmail.com や他の Google ドメイン サービス アカウントにログインしていないことを確認してください。プロファイルをクリーンにするには、ブラウザを閉じて再起動し、シークレット(プライベート)ブラウジング ウィンドウを開きます。
    • 他のユーザーのアクセス権をリクエストする場合は、アクセス権を必要とするユーザーごとにアカウントを作成します。次に、新しい Google アカウントのリストを Google ビジネス パートナーに送信します。 ビジネス パートナーが、これらのメールアドレスを適切なアクセス グループに追加します。
  3. 作成した Google アカウントを使用して、https://partner-code.googlesource.com にアクセスします。Gerrit ホストにアクセスすると、ユーザーが作成されて自動的にログインします。
  4. https://partner-code.googlesource.com で、[Generate Password] をクリックします。画面の指示に沿って Google アカウントを選択し、googlesource.com にアクセスを許可して、画面上のその他の指示に沿って操作します。
  5. スクリプトが表示されたら、そのスクリプトをコピーしてターミナルに貼り付けます。

ステップ 2: リポジトリのクローンを作成する

このステップでは、googleapis リポジトリと routes-auto-early-access リポジトリのクローンを作成します。

  1. routes-auto-early-access リポジトリのクローンを作成します。
    git clone https://partner-code.googlesource.com/routes-auto-early-access
  2. 一般公開の Google googleapis リポジトリのクローンを作成します。
    git clone https://github.com/googleapis/googleapis.git

ステップ 3: リポジトリを統合する

このステップでは、routes-auto-early-access/google/maps/routing/v2 サブディレクトリを googleapis/google/maps/routing/v2 に移動します。

  1. リポジトリのクローンを作成したら、現在の作業ディレクトリ(pwd)に routes-auto-early-accessgoogleapis の両方のサブディレクトリが含まれていることを確認します。
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. ターゲットの場所に routing/v2 ディレクトリを作成し、routing/v2googleapis/google/maps/routing/v2 にコピーします。
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

routing/v2 ディレクトリが googleapis/google/maps/routing/v2 ディレクトリに正常にマージされたことを確認するには、googleapis/google/maps/routing/v2 に移動します。フォルダには、proto ファイル、BUILD.bazel ファイル、ビルドに必要なその他のファイルが含まれています。

ステップ 4: Bazelisk を使用してクライアント ライブラリをビルドする

特定の言語のクライアント ライブラリをビルドするには、BUILD.bazel ファイル(googleapis/google/maps/routing/v2/BUILD.bazel)でその言語のビルド ターゲットを指定し、そのターゲットをビルドします。ターゲット name は、<LANGUAGE>_gapic_assembly_pkg オブジェクト内にあります。詳細については、Bazel のドキュメントの 1 つのターゲットをビルドするをご覧ください。

たとえば、Java クライアント ライブラリをビルドする手順は次のとおりです。

  1. googleapis ディレクトリに移動します。
    cd googleapis
  2. 次のコマンドを実行します。
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    このコマンドにより、googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz に Java クライアント ライブラリが生成されます。

次の表に、使用可能な各言語のビルドコマンドを示します。

言語 Bazelisk ビルドコマンド
Java bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java
Go bazelisk build google/maps/routing/v2:gapi-cloud-maps-routing-v2-go
PHP bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-php
Ruby bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-ruby
C# bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-csharp
ノード bazelisk build google/maps/routing/v2:maps-routing-v2-nodejs

新しいリリースがある場合にアップデートを組み込む

API の新しいリリースがある場合は、クライアント ライブラリを再ビルドする必要があります。前のセクションの手順に沿ってリポジトリのクローンを作成している場合は、新しいリリースに対して次の操作を行います。

  1. 両方のリポジトリを含む現在の作業ディレクトリに移動します。
    .
       ├── routes-auto-early-access
       └── googleapis
    
  2. googleapis/google/maps 内の routing/v2 の以前のインスタンス
    rm -rf googleapis/google/maps/routing/v2
    
    を削除します。
  3. routes-auto-early-access リポジトリと googleapis リポジトリの両方に移動し、git pull を実行して最新の更新を取得します。
  4. 前と同様に、routing/v2googleapis/google/maps/routing/v2 にコピーします。
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

    routing/v2 リポジトリが googleapis/google/maps/routing/v2 ディレクトリに正常にマージされたことを確認するには、googleapis/google/maps/routing/v2 に移動します。フォルダには、proto ファイル、BUILD.bazel ファイル、Bazel ビルドに必要なその他のファイルが含まれています。

  5. 前のセクションのステップ 4: Bazelisk を使用してクライアント ライブラリをビルドするで一覧表示した Bazelisk ビルドコマンドを実行します。

Java クライアント ライブラリの Javadocs の生成

クライアント ライブラリを使用すると、その言語に固有のクラスとメソッドを使用して Routes API for Automotive を呼び出すことができます。残念ながら、出力にはクライアント ライブラリの Javadoc ドキュメントは含まれていません。このセクションでは、Java クライアント ライブラリの Javadoc を生成する方法について説明します。

前提条件

Javadoc をビルドするには:

  1. 互換性のあるバージョンの Gradle(8.0 以降)と JDK(17 以下)がインストールされていることを確認します。ターミナルで ./gradlew --versionjava -version を実行すると、インストールされているバージョンを確認できます。

  2. Java クライアント ライブラリは tar.gz ファイル(googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz)にビルドされているため、このファイルを抽出する必要があります。

    現在のディレクトリが googleapis ディレクトリであると仮定して、次のコマンドを実行します。/PATH/TO/PARENT/DIRECTORY は、抽出したライブラリのパスに置き換えてください。

    mkdir -p /PATH/TO/PARENT/DIRECTORY && tar -xzpf bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz -C /PATH/TO/PARENT/DIRECTORY
  3. 親ディレクトリに移動します。

    cd /PATH/TO/PARENT/DIRECTORY
    
  4. google-cloud-maps-routing-v2-java ディレクトリから、次の各ディレクトリにある build.gradle ファイルを開きます。

    • gapic-google-cloud-maps-routing-v2-java/build.gradle
    • grpc-google-cloud-maps-routing-v2-java/build.gradle
    • proto-google-cloud-maps-routing-v2-java/build.gradle

    それぞれに次のタスクが含まれていることを確認します。バグにより、既存の 2 つの類似したタスクとアーティファクトを次のコードに置き換えます。

    
    task javadocJar(type: Jar, dependsOn: javadoc) {
      archiveClassifier.set('javadoc')
      from javadoc.destinationDir
    }
    
    task sourcesJar(type: Jar) {
      archiveClassifier.set('sources')
      from sourceSets.main.allSource
    }
    
    artifacts {
    archives javadocJar
    }
    
  5. Gradle 8.0 以降を使用していることを確認します(./gradlew --version)。バージョンが 7 の場合は、次の操作を行います。google-cloud-maps-routing-v2-java ディレクトリから gradlew ファイルと gradlew.bat ファイルを削除します。次に、gradle wrapper --gradle-version=8.0 を実行して 8.0 に切り替えます。

  6. google-cloud-maps-routing-v2-java ディレクトリから、Gradle を使用して Javadocs をビルドします。

    ./gradlew build
    

    生成された Javadoc は、以下のディレクトリに格納されます。

    • google-cloud-maps-routing-v2-java/gapic-google-cloud-maps-routing-v2-java/build/docs/javadoc
    • google-cloud-maps-routing-v2-java/grpc-google-cloud-maps-routing-v2-java/build/docs/javadoc
    • google-cloud-maps-routing-v2-java/proto-google-cloud-maps-routing-v2-java/build/docs/javadoc
  7. ウェブブラウザを使用して、各ディレクトリの overview-tree.html ファイルを開きます。