Genera bibliotecas cliente con Bazelisk (Automotive)

Las bibliotecas cliente son interfaces específicas del lenguaje para una API. En este documento, se describe cómo usar Bazelisk, un selector de Bazel, para generar bibliotecas cliente de la API de Routes para Automotive en varios lenguajes de programación. Bazelisk garantiza que se use la versión correcta de Bazel para ejecutar los comandos de compilación.

El código necesario para generar las bibliotecas se aloja en un repositorio privado de Gerrit. Para obtener una explicación de cómo funcionan las bibliotecas cliente, consulta Explicación de bibliotecas cliente.

Requisitos previos

Requisitos de software

Instala lo siguiente:

Requisitos de permisos

  • El acceso al repositorio se proporciona a los miembros de un grupo<partner>@google.com específico, administrado por un representante de tu empresa. Para que te agreguen a este grupo, comunícate con el punto de contacto de tu empresa o con el socio comercial de Google.

Paso 1: Accede a Gerrit

Para acceder a Gerrit, sigue estos pasos:
  1. Asegúrate de haber completado los requisitos de permisos del repositorio que se indican en la sección Requisitos previos.
  2. Crea una Cuenta de Google con una dirección de correo electrónico empresarial. Para ello, sigue las instrucciones que se indican en Cómo crear una Cuenta de Google.
    • Cuando crees una Cuenta de Google, asegúrate de no haber accedido a gmail.com ni a otra cuenta de servicios de dominio de Google antes de visitar la página de acceso a la Cuenta de Google. Para asegurarte de limpiar tu perfil, cierra y reinicia el navegador, y abre una ventana de navegación de incógnito (privada).
    • Cuando solicites acceso a otras personas, crea una cuenta para cada persona que lo necesite. Luego, envía la lista de Cuentas de Google nuevas a tu socio comercial de Google. Tu socio comercial agregará las direcciones de correo electrónico a los grupos de acceso correspondientes.
  3. Con la Cuenta de Google que acabas de crear, ve a https://partner-code.googlesource.com. Cuando accedas al host de Gerrit, se creará un usuario y accederá automáticamente.
  4. En https://partner-code.googlesource.com, haz clic en Generar contraseña. Sigue las indicaciones en pantalla para seleccionar tu Cuenta de Google, permitir el acceso a googlesource.com y seguir otras instrucciones en pantalla.
  5. Cuando veas una secuencia de comandos, cópiala y pégala en tu terminal.

Paso 2: Clona los repositorios

En este paso, clonarás los repositorios googleapis y routes-auto-early-access.

  1. Clona el repositorio routes-auto-early-access:
    git clone https://partner-code.googlesource.com/routes-auto-early-access
  2. Clona el repositorio público de Google googleapis:
    git clone https://github.com/googleapis/googleapis.git

Paso 3: Combina los repositorios

En este paso, moverás el subdirectorio routes-auto-early-access/google/maps/routing/v2 a googleapis/google/maps/routing/v2.

  1. Después de clonar los repositorios, asegúrate de que el directorio de trabajo actual (pwd) incluya los subdirectorios routes-auto-early-access y googleapis.
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. Crea un directorio routing/v2 en la ubicación de destino y copia routing/v2 en 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 que el directorio routing/v2 se combinó correctamente con el directorio googleapis/google/maps/routing/v2, ve a googleapis/google/maps/routing/v2. La carpeta debe contener archivos proto, un archivo BUILD.bazel y otros archivos necesarios para la compilación.

Paso 4: Compila una biblioteca cliente con Bazelisk

Si quieres compilar la biblioteca cliente para un lenguaje en particular, identifica el destino de compilación para ese idioma en el archivo BUILD.bazel (en googleapis/google/maps/routing/v2/BUILD.bazel) y compila ese destino. Puedes encontrar el name de destino dentro de los objetos <LANGUAGE>_gapic_assembly_pkg. Consulta Crea un destino en la documentación de Bazel para obtener más información.

Por ejemplo, para compilar la biblioteca cliente de Java, haz lo siguiente:

  1. Cambia al directorio googleapis:
    cd googleapis
  2. Ejecuta el siguiente comando:
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    Con este comando, se genera la biblioteca cliente de Java en googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

Para tu comodidad, en la siguiente tabla, se enumeran los comandos de compilación para cada lenguaje disponible.

Idioma Comando de compilación de 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
Rita 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
Nodo bazelisk build google/maps/routing/v2:maps-routing-v2-nodejs

Incorpora actualizaciones cuando haya nuevos lanzamientos

Cuando haya nuevos lanzamientos de la API, deberás volver a compilar las bibliotecas cliente. Si ya clonaste los repositorios según las instrucciones de las secciones anteriores, haz lo siguiente para las versiones nuevas:

  1. Cambia al directorio de trabajo actual que contiene ambos repositorios:
    .
       ├── routes-auto-early-access
       └── googleapis
    
    .
  2. Quita la instancia anterior de routing/v2 dentro de googleapis/google/maps:
    rm -rf googleapis/google/maps/routing/v2
    
  3. Ve a los repositorios routes-auto-early-access y googleapis, y ejecuta git pull para obtener las actualizaciones más recientes.
  4. Copia routing/v2 en googleapis/google/maps/routing/v2, similar a lo anterior:
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

    Para confirmar que el repositorio routing/v2 se combinó correctamente con el directorio googleapis/google/maps/routing/v2, ve a googleapis/google/maps/routing/v2. La carpeta debe contener archivos proto, un archivo BUILD.bazel y otros archivos necesarios para la compilación de Bazel.

  5. Ejecuta los comandos de compilación de Bazelisk que se enumeran en la sección anterior Paso 4: Compila una biblioteca cliente con Bazelisk.

Cómo generar Javadocs para la biblioteca cliente de Java

La biblioteca cliente te permite llamar a la API de Routes para Automotive con las clases y los métodos específicos del lenguaje. Lamentablemente, el resultado no incluye la documentación de Javadoc para la biblioteca cliente. En esta sección, se explica cómo generar el Javadoc para la biblioteca cliente de Java.

Requisitos previos

Para compilar el Javadoc, sigue estos pasos:

  1. Asegúrate de tener instaladas versiones compatibles de Gradle (8.0 o versiones posteriores) y JDK (17 o anteriores). Para comprobar las versiones instaladas, ejecuta ./gradlew --version y java -version en tu terminal.

  2. La biblioteca cliente de Java está compilada en el siguiente archivo tar.gz, que deberás extraer: googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

    Si estás en el directorio googleapis, ejecuta el siguiente comando y reemplaza /PATH/TO/PARENT/DIRECTORY por la ruta de acceso que elegiste para la 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. Navega al directorio superior:

    cd /PATH/TO/PARENT/DIRECTORY
    
  4. Desde el directorio google-cloud-maps-routing-v2-java, abre los archivos build.gradle en cada uno de los siguientes directorios:

    • 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

    Asegúrate de que cada uno incluya las siguientes tareas. Debido a un error, reemplaza las dos tareas y artefactos similares existentes con 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. Verifica que uses Gradle 8.0 o una versión posterior: ./gradlew --version. Si tu versión es la 7, haz lo siguiente: en el directorio google-cloud-maps-routing-v2-java, borra los archivos gradlew y gradlew.bat. Luego, ejecuta gradle wrapper --gradle-version=8.0 para cambiar a 8.0.

  6. Desde el directorio google-cloud-maps-routing-v2-java, usa Gradle para compilar los Javadocs:

    ./gradlew build
    

    El Javadoc generado aparece en estos directorios:

    • 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. Abre el archivo overview-tree.html de cada directorio con un navegador web.