Tạo thư viện ứng dụng bằng Bazelisk (Automotive)

Thư viện ứng dụng là giao diện dành riêng cho ngôn ngữ của một API. Tài liệu này mô tả cách sử dụng Bazelisk (một trình chạy cho Bazel) để tạo thư viện ứng dụng cho Routes API for Automotive bằng nhiều ngôn ngữ lập trình. Bazelisk đảm bảo rằng hệ thống sử dụng đúng phiên bản Bazel để thực thi các lệnh tạo bản dựng.

Mã cần thiết để tạo thư viện được lưu trữ trong một kho lưu trữ Gerrit riêng tư. Để được giải thích về cách hoạt động của thư viện ứng dụng, hãy xem phần Giải thích về thư viện ứng dụng.

Điều kiện tiên quyết

Yêu cầu về phần mềm

Cài đặt các mục sau:

Yêu cầu về quyền

  • Quyền truy cập vào kho lưu trữ được cấp cho các thành viên của một nhóm<partner>@google.com cụ thể do đại diện của công ty bạn quản lý. Để được thêm vào nhóm này, hãy liên hệ với đầu mối liên hệ của công ty bạn hoặc đối tác kinh doanh của Google.

Bước 1: Truy cập vào Gerrit

Cách truy cập vào Gerrit:
  1. Đảm bảo bạn đã hoàn thành các yêu cầu về quyền truy cập vào kho lưu trữ nêu trong phần Điều kiện tiên quyết.
  2. Tạo Tài khoản Google bằng địa chỉ email công ty bằng cách làm theo hướng dẫn trong phần Tạo Tài khoản Google.
    • Khi tạo Tài khoản Google, hãy đảm bảo bạn không đăng nhập vào gmail.com hoặc một tài khoản dịch vụ khác của miền Google trước khi truy cập trang Đăng nhập bằng Tài khoản Google. Để đảm bảo hồ sơ sạch, hãy đóng rồi khởi động lại trình duyệt, đồng thời mở một cửa sổ duyệt web ở chế độ ẩn danh (riêng tư).
    • Khi yêu cầu người khác cấp quyền truy cập, hãy tạo tài khoản cho từng cá nhân cần quyền truy cập. Sau đó, gửi danh sách Tài khoản Google mới cho đối tác kinh doanh của Google. Đối tác kinh doanh của bạn sẽ thêm địa chỉ email vào các nhóm truy cập thích hợp.
  3. Truy cập vào https://partner-code.googlesource.com bằng Tài khoản Google bạn vừa tạo. Khi bạn truy cập vào máy chủ lưu trữ của Gerrit, một người dùng sẽ được tạo và tự động đăng nhập cho bạn.
  4. Trên https://partner-code.googlesource.com, hãy nhấp vào Generate Password (Tạo mật khẩu). Làm theo hướng dẫn trên màn hình để chọn Tài khoản Google của bạn, cho phép truy cập vào googlesource.com và làm theo hướng dẫn khác trên màn hình.
  5. Khi thấy một tập lệnh, hãy sao chép và dán tập lệnh đó vào dòng lệnh của bạn.

Bước 2: Sao chép các kho lưu trữ

Trong bước này, bạn sẽ sao chép kho lưu trữ googleapisroutes-auto-early-access.

  1. Sao chép kho lưu trữ routes-auto-early-access:
    git clone https://partner-code.googlesource.com/routes-auto-early-access
  2. Sao chép kho lưu trữ googleapis công khai của Google:
    git clone https://github.com/googleapis/googleapis.git

Bước 3: Hợp nhất các kho lưu trữ

Trong bước này, bạn sẽ di chuyển thư mục con routes-auto-early-access/google/maps/routing/v2 vào googleapis/google/maps/routing/v2.

  1. Sau khi sao chép kho lưu trữ, hãy đảm bảo thư mục đang hoạt động (pwd) hiện có chứa cả thư mục con routes-auto-early-accessgoogleapis.
    .
       ├── routes-auto-early-access
       └── googleapis
       
  2. Tạo thư mục routing/v2 ở vị trí đích rồi sao chép routing/v2 vào 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"

Để xác nhận đã hợp nhất thành công thư mục routing/v2 vào thư mục googleapis/google/maps/routing/v2, hãy chuyển đến googleapis/google/maps/routing/v2. Thư mục này phải chứa các tệp proto, một tệp BUILD.bazel và các tệp khác cần thiết để xây dựng.

Bước 4: Xây dựng thư viện ứng dụng bằng Bazelisk

Để xây dựng thư viện ứng dụng cho một ngôn ngữ cụ thể, hãy xác định mục tiêu bản dựng cho ngôn ngữ đó trong tệp BUILD.bazel (tại googleapis/google/maps/routing/v2/BUILD.bazel) và tạo mục tiêu đó. Bạn có thể tìm thấy name mục tiêu bên trong các đối tượng <LANGUAGE>_gapic_assembly_pkg. Xem phần Xây dựng một mục tiêu trong tài liệu về Bazel để biết thêm thông tin.

Ví dụ: để xây dựng thư viện ứng dụng Java, hãy làm như sau:

  1. Đổi sang thư mục googleapis:
    cd googleapis
  2. Chạy lệnh sau:
    bazelisk build google/maps/routing/v2:google-cloud-maps-routing-v2-java

    Lệnh này tạo thư viện ứng dụng Java tại googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

Để thuận tiện cho bạn, bảng sau đây liệt kê các lệnh tạo cho từng ngôn ngữ hiện có.

Ngôn ngữ Lệnh tạo 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
1.199 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
Nút bazelisk build google/maps/routing/v2:maps-routing-v2-nodejs

Tích hợp nội dung cập nhật khi có bản phát hành mới

Khi có bản phát hành mới cho API, bạn cần tạo lại thư viện ứng dụng. Giả sử bạn đã sao chép kho lưu trữ theo hướng dẫn trong các phần trước, hãy làm như sau cho các bản phát hành mới:

  1. Thay đổi thành thư mục đang hoạt động hiện tại chứa cả hai kho lưu trữ:
    .
       ├── routes-auto-early-access
       └── googleapis
    
  2. Xoá thực thể trước đó của routing/v2 bên trong googleapis/google/maps:
    rm -rf googleapis/google/maps/routing/v2
    
  3. Truy cập vào cả kho lưu trữ routes-auto-early-accessgoogleapis, đồng thời chạy git pull để nhận thông tin cập nhật mới nhất.
  4. Sao chép routing/v2 vào googleapis/google/maps/routing/v2, tương tự như trước:
    mkdir -p "googleapis/google/maps/routing/v2" && cp -R "routes-auto-early-access/google/maps/routing/v2" "googleapis/google/maps/routing"

    Để xác nhận rằng kho lưu trữ routing/v2 đã được hợp nhất vào thư mục googleapis/google/maps/routing/v2, hãy chuyển đến googleapis/google/maps/routing/v2. Thư mục này phải chứa các tệp proto, một tệp BUILD.bazel và các tệp khác cần thiết cho bản dựng Bazel.

  5. Chạy các lệnh tạo bản dựng Bazelisk được nêu trong phần trước Bước 4: Tạo thư viện ứng dụng bằng Bazelisk.

Tạo tài liệu Java cho thư viện ứng dụng Java

Thư viện ứng dụng cho phép bạn gọi Routes API for Automotive bằng cách sử dụng các lớp và phương thức dành riêng cho ngôn ngữ đó. Rất tiếc, kết quả đầu ra không bao gồm tài liệu Javadoc cho thư viện ứng dụng. Phần này giải thích cách tạo Javadoc cho thư viện ứng dụng Java.

Điều kiện tiên quyết

Cách xây dựng Javadoc:

  1. Đảm bảo bạn đã cài đặt các phiên bản Gradle (8.0 trở lên) và JDK (17 trở xuống) tương thích. Bạn có thể kiểm tra các phiên bản đã cài đặt bằng cách chạy ./gradlew --versionjava -version trong cửa sổ dòng lệnh.

  2. Thư viện ứng dụng Java được xây dựng cho tệp tar.gz sau đây mà bạn cần trích xuất: googleapis/bazel-bin/google/maps/routing/v2/google-cloud-maps-routing-v2-java.tar.gz.

    Giả sử bạn đang ở trong thư mục googleapis, hãy chạy lệnh sau và thay /PATH/TO/PARENT/DIRECTORY bằng đường dẫn mà bạn đã chọn cho thư viện đã trích xuất:

    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. Chuyển đến thư mục mẹ:

    cd /PATH/TO/PARENT/DIRECTORY
    
  4. Trên thư mục google-cloud-maps-routing-v2-java, hãy mở các tệp build.gradle trong mỗi thư mục sau:

    • 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

    Hãy đảm bảo mỗi biến đều có các việc cần làm sau. Do có lỗi, hãy thay thế hai tác vụ và cấu phần phần mềm tương tự hiện có bằng mã sau:

    
    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. Kiểm tra để đảm bảo bạn đang sử dụng Gradle 8.0 trở lên: ./gradlew --version. Nếu phiên bản của bạn là 7, hãy làm như sau: trong thư mục google-cloud-maps-routing-v2-java, hãy xoá các tệp gradlewgradlew.bat. Sau đó, hãy chạy gradle wrapper --gradle-version=8.0 để chuyển sang phiên bản 8.0.

  6. Trong thư mục google-cloud-maps-routing-v2-java, hãy sử dụng Gradle để tạo các tài liệu Java:

    ./gradlew build
    

    Javadoc được tạo sẽ xuất hiện trong các thư mục sau:

    • 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. Mở tệp overview-tree.html của từng thư mục bằng trình duyệt web.