Bazelisk (Automotive)로 클라이언트 라이브러리 생성

클라이언트 라이브러리는 API의 언어별 인터페이스입니다. 이 문서에서는 Bazel용 런처인 Bazelisk를 사용하여 다양한 프로그래밍 언어로 Automotive용 Routes API의 클라이언트 라이브러리를 생성하는 방법을 설명합니다. 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에서 비밀번호 생성을 클릭합니다. 화면에 표시되는 안내에 따라 Google 계정을 선택하고 googlesource.com 액세스를 허용한 다음 화면에 표시된 기타 안내를 따릅니다.
  5. 스크립트가 제공되면 스크립트를 복사하여 터미널에 붙여넣습니다.

2단계: 저장소 클론하기

이 단계에서는 googleapisroutes-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. 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에 자바 클라이언트 라이브러리를 생성합니다.

다음 표에는 사용 가능한 언어별 빌드 명령어가 나와 있으니 참고하시기 바랍니다.

언어 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
2,399필리핀 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-accessgoogleapis 저장소로 이동한 후 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 빌드 명령어를 실행합니다.

자바 클라이언트 라이브러리용 Javadocs 생성

클라이언트 라이브러리를 사용하면 언어별 클래스 및 메서드를 사용하여 Automotive용 Routes API를 호출할 수 있습니다. 안타깝게도 출력에는 클라이언트 라이브러리의 Javadoc 문서가 포함되어 있지 않습니다. 이 섹션에서는 자바 클라이언트 라이브러리용 Javadoc을 생성하는 방법을 설명합니다.

기본 요건

Javadoc을 빌드하는 방법은 다음과 같습니다.

  1. 호환되는 버전의 Gradle (8.0 이상) 및 JDK (17 이하)가 설치되어 있는지 확인합니다. 터미널에서 ./gradlew --versionjava -version를 실행하여 설치된 버전을 확인할 수 있습니다.

  2. 자바 클라이언트 라이브러리는 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 디렉터리에서 gradlewgradlew.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 파일을 엽니다.