אחסון חבילות Java ב-Artifact Registry

במדריך למתחילים הזה מוסבר איך להגדיר מאגר Maven פרטי ב-Artifact Registry ולהעלות אליו חבילה.


לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :

תראו לי איך


לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של מאגרי חבילות Java ב-Artifact Registry, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Artifact Registry Administrator (אדמין של Artifact Registry) ‏(roles/artifactregistry.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הפעלת Cloud Shell

במדריך למתחילים הזה תשתמשו ב-Cloud Shell, שהיא סביבת מעטפת לניהול משאבים שמתארחים ב-Google Cloud.

ב-Cloud Shell מותקנים מראש Google Cloud CLI ו-Java. ה-CLI של gcloud הוא ממשק שורת הפקודה העיקרי ל- Google Cloud.

מפעילים את Cloud Shell:

  1. עוברים אל Google Cloud המסוף.

    Google Cloud console

  2. בסרגל הכלים של המסוף, לוחצים על Activate Cloud Shell (הפעלת Cloud Shell): Google Cloud

בחלק התחתון של המסוף ייפתח סשן של Cloud Shell בתוך מסגרת. משתמשים בשורת הפקודות הזו כדי להריץ פקודות gcloud.

יצירת מאגר חבילות Java

יוצרים את המאגר של ארטיפקטים של Java.

  1. יוצרים את המאגר:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. לוחצים על Create Repository (יצירת מאגר).

  3. מציינים את quickstart-java-repo כשם המאגר.

  4. בוחרים באפשרות Maven כפורמט ובאפשרות Standard כמצב.

  5. בקטע Location Type, בוחרים באפשרות Region ואז בוחרים את המיקום us-central1.

  6. לוחצים על יצירה.

    המאגר נוסף לרשימת המאגרים.

gcloud

  1. מריצים את הפקודה הבאה כדי ליצור מאגר חדש של חבילות Java בפרויקט הנוכחי בשם quickstart-java-repo במיקום us-central1.

    gcloud artifacts repositories create quickstart-java-repo --repository-format=maven \
    --location=us-central1 --description="Java package repository"
    
  2. מריצים את הפקודה הבאה כדי לוודא שהמאגר נוצר:

    gcloud artifacts repositories list
    

    כדי לקבל מידע נוסף על פקודות Artifact Registry, מריצים את הפקודה gcloud artifacts.

הגדרת Maven

  1. בוחרים פרויקט Maven פשוט שרוצים להשתמש בו.

    אם אין לכם פרויקט פשוט, אתם יכולים ליצור את הפרויקט Maven תוך 5 דקות.

    במדריך למתחילים הזה מניחים שלפרויקט הפשוט שלכם אין תלות נוספת בהורה או בתוסף שמאוחסנת ב-Artifact Registry. לפרטים על הגדרת פרויקט Maven עם תלות ב-Artifact Registry, אפשר לעיין במאמר אימות באמצעות כלי עזר לפרטי כניסה.

  2. כדי לפשט את הפקודות של gcloud, מגדירים את מאגר ברירת המחדל ל-quickstart-java-repo ואת מיקום ברירת המחדל ל-us-central1. אחרי שמגדירים את הערכים, לא צריך לציין אותם בפקודות gcloud שדורשות מאגר או מיקום.

    כדי להגדיר את המאגר, מריצים את הפקודה:

    gcloud config set artifacts/repository quickstart-java-repo
    

    כדי להגדיר את המיקום, מריצים את הפקודה:

    gcloud config set artifacts/location us-central1
    

    מידע נוסף על הפקודות האלה זמין במאמר בנושא gcloud config set.

  3. מריצים את הפקודה הבאה כדי להדפיס את ההגדרות של מאגר ברירת המחדל quickstart-java-repo.

    gcloud artifacts print-settings mvn
    

    הפלט של הפקודה gcloud נראה כמו הקטע הבא, כאשר PROJECT הוא מזהה הפרויקט.

    <distributionManagement>
      <snapshotRepository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
      </snapshotRepository>
      <repository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
      </repository>
    </distributionManagement>
    
    <repositories>
      <repository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>
    
    <build>
      <extensions>
        <extension>
          <groupId>com.google.cloud.artifactregistry</groupId>
          <artifactId>artifactregistry-maven-wagon</artifactId>
          <version>2.2.5</version>
        </extension>
      </extensions>
    </build>
    
  4. מוסיפים את ההגדרות לקובץ pom.xml של פרויקט Maven. בתוכנית הבאה מוצג המיקום היחסי של כל אחד מהאלמנטים העיקריים. פרטים על מבנה הקובץ מופיעים בהפניה ל-POM של Maven.

    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                          http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
      <!-- Build Settings -->
      <build>
        ...
        <extensions>...</extensions>
      </build>
    
      <!-- Environment Settings -->
      <repositories>...</repositories>
      <distributionManagement>...</distributionManagement>
    </project>
    

עכשיו אפשר להעלות חבילות לפרויקט Maven למאגר.

הגדרת Gradle

יוצרים פרויקט Gradle פשוט כדי לפרוס חבילה למאגר Artifact Registry שיצרתם. אם אין לכם גרסת build לבדיקה של Gradle, תוכלו לפעול לפי המדריך המבואי ל-Gradle כדי ליצור גרסת build פשוטה של Gradle.

כדי לפשט את הפקודות של gcloud, מגדירים את מאגר ברירת המחדל ל-quickstart-java-repo ואת מיקום ברירת המחדל ל-us-central1. אחרי שמגדירים את הערכים, לא צריך לציין אותם בפקודות gcloud שדורשות מאגר או מיקום.

כדי להגדיר את המאגר, מריצים את הפקודה:

gcloud config set artifacts/repository quickstart-java-repo

כדי להגדיר את המיקום, מריצים את הפקודה:

gcloud config set artifacts/location us-central1

מידע נוסף על הפקודות האלה זמין במאמר בנושא gcloud config set.

  1. מוסיפים הגדרות לחיבור המאגר לקובץ build.gradle. הפקודה הבאה מדפיסה את ההגדרות שצריך להוסיף למאגר ברירת המחדל quickstart-java-repo.

    gcloud artifacts print-settings gradle
    

    הפלט של הפקודה gcloud נראה כמו בדוגמה הבאה, כאשר PROJECT הוא מזהה הפרויקט.

    plugins {
      id "maven-publish"
      id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.5"
          }
    
    publishing {
      repositories {
        maven {
          url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
        }
      }
    }
    
    repositories {
      maven {
        url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
      }
    }
    
  2. מוודאים שהקובץ build.gradle כולל את הקטע publications. אם לא, מוסיפים אותו לקובץ build.gradle.

    הקטע publications הוא צאצא של publishing, כמו שמוצג בדוגמה הבאה:

    publishing {
      publications {
           mavenJava(MavenPublication) {
              groupId  'maven.example.id'
              from components.java
           }
      }
      repositories {
        maven {
          url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
        }
      }
    }
    

    אפשר גם להוסיף הגדרות של מאגר לקבצים init.gradle או settings. פרטים על האפשרויות האלה מופיעים במאמר בנושא הגדרת אימות.

    העלאת חבילה למאגר

    ב-Maven, אפשר להשתמש ב-mvn deploy וב-mvn release כדי להוסיף חבילות למאגר.

    ב-Gradle, משתמשים בפקודה gradle publish כדי להעלות חבילה למאגר.

    הצגת החבילה במאגר

    כדי לוודא שהחבילה נוספה למאגר:

    המסוף

    1. פותחים את הדף Repositories במסוף Google Cloud .

      פתיחת הדף Repositories

    2. ברשימת המאגרים, לוחצים על המאגר quickstart-java-repo.

      בדף Packages (חבילות) מופיעה רשימת החבילות במאגר.

    gcloud

    1. כדי להציג את רשימת החבילות במאגר quickstart-java-repo, מריצים את הפקודה הבאה:

      gcloud artifacts packages list --repository=quickstart-java-repo
      

      הפלט ייראה כך:

      Listing items under project <project-id>, location us-central1,\
      repository quickstart-java-repo.
      
      PACKAGE: maven.example.id:gradle-demo
      CREATE_TIME: 2022-01-20T22:46:07
      UPDATE_TIME: 2022-01-20T22:46:07
      

      כאשר maven.example.id:gradle-demo הוא מזהה החבילה

      כדי לראות את הגרסאות של חבילה, מריצים את הפקודה הבאה:

      gcloud artifacts versions list --package=PACKAGE
      

      כאשר PACKAGE הוא מזהה החבילה.

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

לפני שמסירים את המאגר, צריך לוודא שכל החבילות שרוצים לשמור זמינות במיקום אחר.

כדי למחוק את המאגר:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. ברשימת המאגרים, בוחרים במאגר quickstart-java-repo.

  3. לוחצים על Delete.

gcloud

  1. כדי למחוק את מאגר quickstart-java-repo, מריצים את הפקודה הבאה:

    gcloud artifacts repositories delete quickstart-java-repo
    
  2. אם רוצים להסיר את הגדרות ברירת המחדל של המאגר והמיקום שהגדרתם עבור התצורה הפעילה של gcloud, מריצים את הפקודות הבאות:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

המאמרים הבאים