Создание клиентских библиотек с помощью Bazelisk (автомобильная промышленность)

Клиентские библиотеки — это языковые интерфейсы для API. В этом документе описывается, как использовать Bazelisk , средство запуска для Bazel , для создания клиентских библиотек для API маршрутов для автомобильной промышленности на различных языках программирования. Bazelisk гарантирует, что для выполнения команд сборки используется правильная версия Bazel.

Код, необходимый для создания библиотек, размещен в частном репозитории Gerrit. Объяснение того, как работают клиентские библиотеки, см. в разделе Объяснение клиентских библиотек .

Предварительные условия

Требования к программному обеспечению

Установите следующее:

Требования к разрешениям

  • Доступ к хранилищу предоставляется участникам определенной группы <partner>@google.com , которой управляет представитель вашей компании. Чтобы вас добавили в эту группу, обратитесь к контактному лицу вашей компании или деловому партнеру Google.

Шаг 1: Получите доступ к Герриту

Чтобы получить доступ к Герриту:
  1. Убедитесь, что вы выполнили требования к разрешениям репозитория, перечисленные в разделе «Предварительные условия» .
  2. Создайте учетную запись Google с корпоративным адресом электронной почты, следуя инструкциям в разделе «Создание учетной записи Google» .
    • При создании учетной записи Google убедитесь, что вы не вошли в учетную запись gmail.com или другую учетную запись доменной службы Google, прежде чем посещать страницу входа в учетную запись Google. Чтобы обеспечить чистоту профиля, закройте и перезапустите браузер и откройте окно просмотра в режиме инкогнито (частное).
    • Запрашивая доступ для других, создайте учетную запись для каждого человека, которому нужен доступ. Затем отправьте список новых аккаунтов Google своему деловому партнеру Google. Ваш деловой партнер добавит адреса электронной почты в соответствующие группы доступа.
  3. Используя только что созданную учетную запись Google, перейдите по адресу https://partner-code.googlesource.com . Когда вы получаете доступ к хосту Gerrit, для вас будет создан пользователь, который автоматически войдет в систему.
  4. На странице https://partner-code.googlesource.com нажмите «Создать пароль» . Следуйте инструкциям на экране, чтобы выбрать свою учетную запись 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-access и googleapis .
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. Создайте каталог routing/v2 в целевом расположении и скопируйте routing/v2 в 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"

Чтобы убедиться, что каталог routing/v2 успешно объединен с каталогом googleapis/google/maps/routing/v2 , перейдите в googleapis/google/maps/routing/v2 . В папке должны находиться файлы прототипа, файл BUILD.bazel и другие файлы, необходимые для сборки.

Шаг 4. Создайте клиентскую библиотеку с помощью Bazelisk.

Чтобы создать клиентскую библиотеку для определенного языка, определите цель сборки для этого языка в файле BUILD.bazel (по адресу googleapis/google/maps/routing/v2/BUILD.bazel ) и создайте эту цель. Целевое name можно найти внутри объектов <LANGUAGE>_gapic_assembly_pkg . Дополнительную информацию см. в разделе «Построение одной цели» в документации Bazel.

Например, чтобы создать клиентскую библиотеку Java, выполните следующие действия:

  1. Перейдите в каталог googleapis :
    cd googleapis
  2. Выполните следующую команду:
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    Эта команда создает клиентскую библиотеку Java по адресу googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz .

Для вашего удобства в следующей таблице перечислены команды сборки для каждого доступного языка.

Язык Команда сборки Базелиска
Джава bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java
Идти 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
Рубин bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-ruby
С# 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. Удалите предыдущий экземпляр routing/v2 внутри googleapis/google/maps :
    rm -rf googleapis/google/maps/routing/v2
    
  3. Перейдите в репозитории routes-auto-early-access и googleapis и запустите git pull , чтобы получить последние обновления.
  4. Скопируйте routing/v2 в 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"

    Чтобы убедиться, что репозиторий routing/v2 успешно объединен с каталогом googleapis/google/maps/routing/v2 , перейдите в googleapis/google/maps/routing/v2 . Папка должна содержать файлы прототипов, файл BUILD.bazel и другие файлы, необходимые для сборки Bazel.

  5. Запустите команды сборки Bazelisk, перечисленные в предыдущем разделе . Шаг 4. Создайте клиентскую библиотеку с помощью Bazelisk .

Создайте Javadocs для клиентской библиотеки Java.

Клиентская библиотека дает вам возможность вызывать API маршрутов для автомобильной промышленности, используя классы и методы, специфичные для этого языка. К сожалению, выходные данные не включают документацию Javadoc для клиентской библиотеки. В этом разделе объясняется, как создать документацию Javadoc для клиентской библиотеки Java.

Предварительные условия

Чтобы создать Javadoc:

  1. Убедитесь, что у вас установлены совместимые версии Gradle (8.0 или выше) и JDK (17 или ниже). Вы можете проверить установленные версии, запустив ./gradlew --version и java -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

    Убедитесь, что каждый из них содержит следующие задачи. Из-за ошибки замените существующие две похожие задачи и артефакты этим кодом:

    
    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 каждого каталога с помощью веб-браузера.