Clientbibliotheken mit Bazelisk (Automotive) generieren

Clientbibliotheken sind sprachspezifische Benutzeroberflächen für eine API. In diesem Dokument wird beschrieben, wie du mit Bazelisk, einem Launcher für Bazel, Clientbibliotheken für die Routes API for Automotive in verschiedenen Programmiersprachen generieren kannst. Bazelisk sorgt dafür, dass zum Ausführen der Build-Befehle die richtige Version von Outline verwendet wird.

Der zum Generieren der Bibliotheken erforderliche Code wird in einem privaten Gerrit-Repository gehostet. Eine Beschreibung der Funktionsweise von Clientbibliotheken finden Sie unter Erläuterung der Clientbibliotheken.

Voraussetzungen

Softwareanforderungen

Installieren Sie Folgendes:

Berechtigungsanforderungen

  • Mitglieder einer bestimmten <partner>@google.com-Gruppe, die von einem Mitarbeiter Ihres Unternehmens verwaltet wird, erhalten Zugriff auf das Repository. Wenn Sie dieser Gruppe hinzugefügt werden möchten, wenden Sie sich an Ihren Ansprechpartner bei Google oder an einen Google-Geschäftspartner.

Schritt 1: Gerrit aufrufen

So greifen Sie auf Gerrit zu:
  1. Prüfen Sie, ob Sie die im Abschnitt Voraussetzungen aufgeführten Anforderungen an Repository-Berechtigungen erfüllt haben.
  2. Erstellen Sie ein Google-Konto mit einer geschäftlichen E-Mail-Adresse. Folgen Sie dazu der Anleitung unter Google-Konto erstellen.
    • Achten Sie beim Erstellen eines Google-Kontos darauf, dass Sie nicht in gmail.com oder einem anderen Konto für Google-Domaindienste angemeldet sind, bevor Sie die Anmeldeseite für Google-Konten aufrufen. Damit das Profil sauber ist, solltest du den Browser schließen und neu starten. Außerdem solltest du ein Inkognitofenster (privat) öffnen.
    • Wenn Sie den Zugriff für andere Nutzer anfordern, erstellen Sie für jede Person, die Zugriff benötigt, ein Konto. Senden Sie dann die Liste der neuen Google-Konten an Ihren Google-Geschäftspartner. Ihr Geschäftspartner fügt die E-Mail-Adressen den entsprechenden Zugriffsgruppen hinzu.
  3. Rufen Sie mit dem Google-Konto, das Sie gerade erstellt haben, https://partner-code.googlesource.com auf. Wenn Sie auf den Gerrit-Host zugreifen, wird ein Nutzer erstellt und automatisch für Sie angemeldet.
  4. Klicken Sie unter https://partner-code.googlesource.com auf Passwort generieren. Folgen Sie der Anleitung auf dem Bildschirm, um Ihr Google-Konto auszuwählen, googlesource.com Zugriff zu gewähren und anderen Anweisungen auf dem Bildschirm zu folgen.
  5. Wenn ein Skript angezeigt wird, kopieren Sie es und fügen Sie es in Ihr Terminal ein.

Schritt 2: Repositories klonen

In diesem Schritt klonen Sie die Repositories googleapis und routes-auto-early-access.

  1. Klonen Sie das routes-auto-early-access-Repository:
    git clone https://partner-code.googlesource.com/routes-auto-early-access
  2. Klonen Sie das öffentliche Google googleapis-Repository:
    git clone https://github.com/googleapis/googleapis.git

Schritt 3: Repositories zusammenführen

In diesem Schritt verschieben Sie das Unterverzeichnis routes-auto-early-access/google/maps/routing/v2 nach googleapis/google/maps/routing/v2.

  1. Prüfen Sie nach dem Klonen der Repositories, ob Ihr aktuelles Arbeitsverzeichnis (pwd) die Unterverzeichnisse routes-auto-early-access und googleapis enthält.
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. Erstellen Sie ein routing/v2-Verzeichnis am Zielspeicherort und kopieren Sie routing/v2 in googleapis/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"

Rufen Sie googleapis/google/maps/routing/v2 auf, um zu prüfen, ob das Verzeichnis routing/v2 mit dem Verzeichnis googleapis/google/maps/routing/v2 zusammengeführt wurde. Der Ordner sollte Proto-Dateien, eine BUILD.bazel-Datei und andere für den Build erforderliche Dateien enthalten.

Schritt 4: Clientbibliothek mit Lookerisk erstellen

Wenn Sie die Clientbibliothek für eine bestimmte Sprache erstellen möchten, geben Sie das Build-Ziel für diese Sprache in der Datei BUILD.bazel (unter googleapis/google/maps/routing/v2/BUILD.bazel) an und erstellen Sie dieses Ziel. Sie finden die Ziel-name in den <LANGUAGE>_gapic_assembly_pkg-Objekten. Weitere Informationen finden Sie in der Dokumentation zu Looker unter Ein Ziel erstellen.

So erstellen Sie beispielsweise die Java-Clientbibliothek:

  1. Wechseln Sie in das Verzeichnis googleapis:
    cd googleapis
  2. Führen Sie den folgenden Befehl aus:
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    Dieser Befehl generiert die Java-Clientbibliothek unter googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

In der folgenden Tabelle sind die Build-Befehle für jede verfügbare Sprache aufgeführt.

Sprache Bazelisk-Build-Befehl
Java bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java
Ok bazelisk build google/maps/routing/v2:gapi-cloud-maps-routing-v2-go
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
Knoten bazelisk build google/maps/routing/v2:maps-routing-v2-nodejs

Updates bei Neuveröffentlichungen integrieren

Wenn neue Versionen der API verfügbar sind, müssen Sie die Clientbibliotheken neu erstellen. Wenn Sie die Repositories bereits gemäß der Anleitung in den vorherigen Abschnitten geklont haben, führen Sie für neue Releases folgende Schritte aus:

  1. Wechseln Sie zum aktuellen Arbeitsverzeichnis, das beide Repositories enthält:
    .
       ├── routes-auto-early-access
       └── googleapis
    
  2. Entfernen Sie die vorherige Instanz von routing/v2 in googleapis/google/maps:
    rm -rf googleapis/google/maps/routing/v2
    
  3. Rufen Sie die Repositories routes-auto-early-access und googleapis auf und führen Sie git pull aus, um die neuesten Updates zu erhalten.
  4. Kopieren Sie routing/v2 in googleapis/google/maps/routing/v2, ähnlich wie zuvor:
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

    Rufen Sie googleapis/google/maps/routing/v2 auf, um zu prüfen, ob das Repository routing/v2 mit dem Verzeichnis googleapis/google/maps/routing/v2 zusammengeführt wurde. Der Ordner sollte Proto-Dateien, eine BUILD.bazel-Datei und andere Dateien enthalten, die für den Bali-Build erforderlich sind.

  5. Führen Sie die im vorherigen Abschnitt Schritt 4: Clientbibliothek mit Lookerisk erstellen aufgeführten Build-Befehle aus.

Javadocs für die Java-Clientbibliothek generieren

Mit der Clientbibliothek können Sie die Routes API for Automotive mit den sprachspezifischen Klassen und Methoden aufrufen. Leider enthält die Ausgabe nicht die Javadoc-Dokumentation für die Clientbibliothek. In diesem Abschnitt wird erläutert, wie das Javadoc für die Java-Clientbibliothek generiert wird.

Voraussetzungen

So erstellen Sie das Javadoc:

  1. Achten Sie darauf, dass kompatible Versionen von Gradle (8.0 oder höher) und JDK (17 oder niedriger) installiert sind. Sie können die installierten Versionen prüfen, indem Sie ./gradlew --version und java -version in Ihrem Terminal ausführen.

  2. Die Java-Clientbibliothek basiert auf der folgenden tar.gz-Datei, die Sie extrahieren müssen: googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

    Wenn Sie sich im Verzeichnis googleapis befinden, führen Sie den folgenden Befehl aus und ersetzen Sie dabei /PATH/TO/PARENT/DIRECTORY durch den ausgewählten Pfad für die extrahierte Bibliothek:

    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. Wechseln Sie zum übergeordneten Verzeichnis:

    cd /PATH/TO/PARENT/DIRECTORY
    
  4. Öffnen Sie im Verzeichnis google-cloud-maps-routing-v2-java die build.gradle-Dateien in jedem der folgenden Verzeichnisse:

    • 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

    Stellen Sie sicher, dass jede der folgenden Aufgaben enthält. Aufgrund eines Fehlers ersetzen Sie die beiden ähnlichen Aufgaben und Artefakte durch diesen Code:

    
    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. Prüfe, ob du Gradle 8.0 oder höher verwendest: ./gradlew --version. Wenn Sie Version 7 verwenden, gehen Sie so vor: Löschen Sie im Verzeichnis google-cloud-maps-routing-v2-java die Dateien gradlew und gradlew.bat. Führen Sie dann gradle wrapper --gradle-version=8.0 aus, um zu Version 8.0 zu wechseln.

  6. Erstellen Sie die Javadocs mit Gradle im Verzeichnis google-cloud-maps-routing-v2-java:

    ./gradlew build
    

    Das generierte Javadoc wird in den folgenden Verzeichnissen angezeigt:

    • 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. Öffnen Sie die Datei overview-tree.html jedes Verzeichnisses in einem Webbrowser.