Gerar bibliotecas de cliente com o Bazelisk (Automotive)

Bibliotecas de cliente são interfaces específicas da linguagem para uma API. Neste documento, descrevemos como usar o Bazelisk, uma tela de início do Bazel (em inglês), para gerar bibliotecas de cliente para a API Routes for Automotive em várias linguagens de programação. O Bazelisk garante que a versão correta dele seja usada para executar os comandos de build.

O código necessário para gerar as bibliotecas está hospedado em um repositório privado do Gerrit. Para uma explicação de como as bibliotecas de cliente funcionam, consulte Explicações sobre bibliotecas de cliente.

Pré-requisitos

Requisitos de software

Instale o seguinte:

Requisitos de permissões

  • O acesso ao repositório é fornecido aos membros de um grupo específico <partner>@google.com, gerenciado por um representante da sua empresa. Para ser adicionado a esse grupo, procure o ponto de contato da sua empresa ou o parceiro de negócios do Google.

Etapa 1: acessar o Gerrit

Para acessar o Gerrit:
  1. Verifique se você concluiu os requisitos de permissão do repositório listados na seção Pré-requisitos.
  2. Crie uma Conta do Google com um endereço de e-mail corporativo seguindo as instruções em Criar uma Conta do Google.
    • Ao criar uma Conta do Google, verifique se você não fez login em gmail.com ou em outra conta de serviços de domínio do Google antes de acessar a página de login da Conta do Google. Para garantir um perfil limpo, feche e reinicie o navegador e abra uma janela de navegação anônima (privada).
    • Ao solicitar acesso para outras pessoas, crie uma conta para cada indivíduo que precisa de acesso. Em seguida, envie a lista de novas Contas do Google para seu parceiro de negócios do Google. Seu parceiro de negócios adicionará os endereços de e-mail aos grupos de acesso apropriados.
  3. Usando a Conta do Google que você acabou de criar, acesse https://partner-code.googlesource.com. Quando você acessar o host do Gerrit, um usuário será criado e conectado automaticamente para você.
  4. Em https://partner-code.googlesource.com, clique em Gerar senha. Siga as instruções na tela para selecionar sua Conta do Google, permitir o acesso a googlesource.com e seguir outras instruções.
  5. Quando um script aparecer, copie e cole no terminal.

Etapa 2: clonar os repositórios

Nesta etapa, você clonará os repositórios googleapis e routes-auto-early-access.

  1. Clone o repositório routes-auto-early-access:
    git clone https://partner-code.googlesource.com/routes-auto-early-access
  2. Clone o repositório público googleapis do Google:
    git clone https://github.com/googleapis/googleapis.git

Etapa 3: mesclar os repositórios

Nesta etapa, mova o subdiretório routes-auto-early-access/google/maps/routing/v2 para googleapis/google/maps/routing/v2.

  1. Depois de clonar os repositórios, verifique se o diretório de trabalho atual (pwd) inclui os subdiretórios routes-auto-early-access e googleapis.
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. Crie um diretório routing/v2 no local de destino e copie routing/v2 em 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"

Para confirmar se o diretório routing/v2 foi mesclado com o diretório googleapis/google/maps/routing/v2, acesse googleapis/google/maps/routing/v2. A pasta precisa conter arquivos proto, um BUILD.bazel e outros arquivos necessários para o build.

Etapa 4: criar uma biblioteca de cliente usando o Bazelisk

Para criar a biblioteca de cliente para uma linguagem específica, identifique o destino de criação para esse idioma no arquivo BUILD.bazel (em googleapis/google/maps/routing/v2/BUILD.bazel) e crie esse destino. O name de destino pode ser encontrado dentro dos objetos <LANGUAGE>_gapic_assembly_pkg. Consulte Como criar um destino na documentação do Bazel para mais informações.

Por exemplo, para criar a biblioteca de cliente Java, faça o seguinte:

  1. Altere para o diretório googleapis:
    cd googleapis
  2. Execute este comando:
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    Esse comando gera a biblioteca de cliente Java em googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

A tabela abaixo lista os comandos de build para cada linguagem disponível.

Idioma Comando build do 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

Incorporar atualizações quando há novos lançamentos

Quando houver novos lançamentos para a API, você precisará recriar as bibliotecas de cliente. Supondo que você já tenha clonado os repositórios seguindo as instruções nas seções anteriores, faça o seguinte para novas versões:

  1. Mude para o diretório de trabalho atual que contém os dois repositórios:
    .
       ├── routes-auto-early-access
       └── googleapis
    
  2. Remova a instância anterior de routing/v2 dentro de googleapis/google/maps:
    rm -rf googleapis/google/maps/routing/v2
    
  3. Acesse os repositórios routes-auto-early-access e googleapis e execute git pull para receber as atualizações mais recentes.
  4. Copie routing/v2 em googleapis/google/maps/routing/v2, como antes:
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

    Para confirmar se o repositório routing/v2 foi mesclado com o diretório googleapis/google/maps/routing/v2, acesse googleapis/google/maps/routing/v2. A pasta precisa conter arquivos proto, um BUILD.bazel e outros arquivos necessários para o build do Bazel.

  5. Execute os comandos de compilação do Bazelisk listados na seção anterior Etapa 4: criar uma biblioteca de cliente usando o Bazelisk.

Gerar Javadocs para a biblioteca de cliente Java

A biblioteca de cliente permite chamar a API Routes for Automotive usando as classes e os métodos específicos da linguagem. Infelizmente, a saída não inclui a documentação do Javadoc da biblioteca de cliente. Nesta seção, explicamos como gerar o Javadoc para a biblioteca de cliente Java.

Pré-requisitos

Para criar o Javadoc:

  1. Verifique se você tem versões compatíveis do Gradle (8.0 ou mais recentes) e do JDK (17 ou anteriores) instaladas. Verifique as versões instaladas executando ./gradlew --version e java -version no seu terminal.

  2. A biblioteca de cliente Java foi criada para o seguinte arquivo tar.gz, que será necessário extrair: googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

    Supondo que você esteja no diretório googleapis, execute o comando a seguir, substituindo /PATH/TO/PARENT/DIRECTORY pelo caminho escolhido para a biblioteca extraída:

    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. Navegue até o diretório pai:

    cd /PATH/TO/PARENT/DIRECTORY
    
  4. No diretório google-cloud-maps-routing-v2-java, abra os arquivos build.gradle em cada um dos seguintes diretórios:

    • 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

    Verifique se cada uma contém as tarefas a seguir. Devido a um bug, substitua as duas tarefas e artefatos semelhantes por este código:

    
    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. Verifique se você está usando o Gradle 8.0 ou uma versão mais recente: ./gradlew --version. Se sua versão for 7, faça o seguinte: no diretório google-cloud-maps-routing-v2-java, exclua os arquivos gradlew e gradlew.bat. Em seguida, execute gradle wrapper --gradle-version=8.0 para mudar para a versão 8.0.

  6. No diretório google-cloud-maps-routing-v2-java, use o Gradle para criar os Javadocs:

    ./gradlew build
    

    O Javadoc gerado aparece nestes diretórios:

    • 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. Abra o arquivo overview-tree.html de cada diretório usando um navegador da Web.