ایجاد کتابخانه های مشتری با Bazelisk (Automotive)

کتابخانه های سرویس گیرنده رابط های زبانی خاص برای یک API هستند. این سند نحوه استفاده از Bazelisk ، یک راه‌انداز برای Bazel را برای تولید کتابخانه‌های کلاینت برای Routes API for Automotive در انواع زبان‌های برنامه‌نویسی شرح می‌دهد. 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 ، روی Generate Password کلیک کنید. فرمان‌های روی صفحه را دنبال کنید تا حساب 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 مراجعه کنید.

به عنوان مثال، برای ساخت کتابخانه سرویس گیرنده جاوا، موارد زیر را انجام دهید:

  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
جاوا 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 را برای کتابخانه مشتری جاوا ایجاد کنید

کتابخانه مشتری به شما این امکان را می دهد که با استفاده از کلاس ها و روش های خاص زبان، Routes API for Automotive را فراخوانی کنید. متأسفانه، خروجی شامل مستندات Javadoc برای کتابخانه مشتری نیست. این بخش نحوه تولید Javadoc برای کتابخانه مشتری جاوا را توضیح می دهد.

پیش نیازها

برای ساخت Javadoc:

  1. مطمئن شوید که نسخه های سازگار Gradle (8.0 یا بالاتر) و JDK (17 یا پایین تر) را نصب کرده اید. می توانید نسخه های نصب شده خود را با اجرای ./gradlew --version و java -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 ، فایل های 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 هر دایرکتوری را با استفاده از یک مرورگر وب باز کنید.