כשמשתמשים באפליקציה של צד שלישי כדי להתחבר למאגר של Artifact Registry, צריך לבצע אימות ב-Artifact Registry. המסמכים האלה מתמקדים בהגדרות של Maven ו-Gradle.
אין צורך להגדיר אימות ל-Cloud Build או לסביבות זמן ריצה כמו Google Kubernetes Engine ו-Cloud Run, אבל צריך לוודא שהוגדרו ההרשאות הנדרשות. Google Cloudמידע נוסף זמין במאמרים בנושא Cloud Build ופריסה בסביבות זמן ריצה של Google Cloud .
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init - (אופציונלי) הגדרת ברירות מחדל לפקודות gcloud.
אם אתם מגדירים אימות באמצעות מאגר סטנדרטי, ודאו שמדיניות הגרסאות מאפשרת לכם להגדיר את פרויקט Maven בצורה נכונה לסוגי חבילות ה-Java שאתם יכולים להעלות.
המסוף
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על המאגר שרוצים לבצע אימות מולו.
בקטע Details מוצגת מדיניות הגרסה. אם למאגר יש מדיניות של גרסת תמונת מצב, השדה Allow snapshot overwrites מציין אם תמונות מצב יכולות להחליף גרסאות תואמות של תמונות מצב במאגר.
gcloud
מריצים את הפקודה הבאה כדי להציג תיאור של מאגר.
gcloud artifacts repositories describe REPOSITORY \ --project=PROJECT \ --location=LOCATIONכאשר:
- REPOSITORY הוא המזהה של המאגר. אם הגדרתם מאגר ברירת מחדל של Artifact Registry, המערכת תשתמש בו אם לא תציינו את הדגל הזה בפקודה.
- PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט ברירת המחדל או בפרויקט הנוכחי.
- LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
הפלט של הפקודה כולל מידע על מדיניות הגרסאות בקטע
mavenConfig. בדוגמה הזו, במאגר יש מדיניות לגבי גרסאות של תמונות מצב, ואי אפשר להחליף תמונות מצב בגרסאות זהות במאגר.Encryption: Google-owned and Google-managed encryption key createTime: '2021-10-04T19:39:10.897404Z' format: MAVEN mavenConfig: allowSnapshotOverwrites: false versionPolicy: SNAPSHOTאם למאגר אין מדיניות גרסאות, הערך של
mavenConfigהוא{}.
סקירה כללית
ב-Artifact Registry יש תמיכה בשיטות האימות הבאות.
- שימוש בכלי עזר לאימות
- האפשרות הזו מספקת את הגמישות הגדולה ביותר. כשכוללים את כלי העזר בהגדרות של Maven או Gradle, Artifact Registry מחפש בסביבה פרטי כניסה לחשבון שירות.
- ציון מפתח של חשבון שירות כפרטי כניסה
- משתמשים באפשרות הזו כשהאפליקציה לא תומכת ב-Application Default Credentials אבל כן תומכת באימות באמצעות שם משתמש וסיסמה.
מפתחות של חשבונות שירות הם פרטי כניסה לטווח ארוך. כדי להגביל את הגישה למאגרים, אתם יכולים להשתמש בהנחיות הבאות:
- מומלץ להשתמש בחשבון שירות ייעודי לאינטראקציה עם מאגרי מידע.
- מקצים לחשבון השירות את התפקיד המינימלי ב-Artifact Registry שנדרש. לדוגמה, אפשר להקצות את התפקיד Artifact Registry Reader לחשבון שירות שמוריד רק ארטיפקטים.
- אם קבוצות בארגון שלכם צריכות רמות גישה שונות למאגרי מידע ספציפיים, כדאי להעניק גישה ברמת מאגר המידע ולא ברמת הפרויקט.
- חשוב לפעול לפי השיטות המומלצות לניהול פרטי כניסה.
אימות באמצעות כלי עזר לפרטי כניסה
Artifact Registry מספק Maven wagon ופלאגין של Gradle כעוזרי פרטי כניסה. כשמשתמשים בכלי העזר לפרטי הכניסה, פרטי הכניסה לא נשמרים בפרויקט Java. במקום זאת, Artifact Registry מחפש פרטי כניסה בסדר הבא:
Application Default Credentials (ADC), אסטרטגיה שמחפשת פרטי כניסה בסדר הבא:
פרטי הכניסה מוגדרים במשתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS.פרטי הכניסה שחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine או בפונקציות של Cloud Run מספק.
פרטי כניסה שסופקו על ידי Google Cloud CLI, כולל פרטי כניסה של משתמשים מהפקודה
gcloud auth application-default login.
המשתנה GOOGLE_APPLICATION_CREDENTIALS מציין במפורש את החשבון לאימות, וכך קל יותר לפתור בעיות. אם לא משתמשים במשתנה, צריך לוודא שלכל חשבון ש-ADC עשוי להשתמש בו יש את ההרשאות הנדרשות. לדוגמה, לחשבון השירות שמוגדר כברירת מחדל למכונות וירטואליות ב-Compute Engine, לצמתים ב-Google Kubernetes Engine ולעדכונים ב-Cloud Run יש גישת קריאה בלבד למאגרים. אם אתם מתכוונים להעלות מהסביבות האלה באמצעות חשבון השירות שמוגדר כברירת מחדל, תצטרכו לשנות את ההרשאות.
הגדרה של חשבון שירות לכלי עזר לפרטי כניסה
כדי ליצור חשבון שירות ולהגדיר אימות באמצעות משתנה הסביבה:
יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.
כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו לדעת איפה נמצא קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.
מקצים לחשבון השירות את התפקיד הספציפי ב-Artifact Registry כדי לתת גישה למאגר.
מקצים את המיקום של קובץ המפתח של חשבון השירות למשתנה
GOOGLE_APPLICATION_CREDENTIALSכדי שעוזר האישורים של Artifact Registry יוכל לקבל את המפתח כשמתחברים למאגרים.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILEKEY-FILE הוא הנתיב אל קובץ המפתח של חשבון השירות.
הגדרת Maven
מגדירים את Maven לפי סוג המאגר שבו משתמשים.
רגילה
מריצים את הפקודה הבאה כדי להדפיס את הגדרות המאגר ולהוסיף אותן לפרויקט ב-Java.
gcloud artifacts print-settings mvn \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATIONכאשר:
- PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט הנוכחי או בפרויקט ברירת המחדל.
- REPOSITORY הוא המזהה של המאגר. אם הגדרתם מאגר ברירת מחדל ב-Artifact Registry, המערכת תשתמש בו אם הדגל הזה לא יופיע בפקודה.
- LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
מוסיפים את ההגדרות שהוחזרו לקטעים המתאימים בקובץ
pom.xmlשל פרויקט Maven. פרטים על מבנה הקובץ מופיעים בהפניה ל-POM של Maven.בדוגמה הבאה מוצגות הגדרות של מאגר שמאחסן גם גרסאות של תמונת מצב וגם גרסאות הפצה.
<distributionManagement> <snapshotRepository> <id>artifact-registry</id> <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url> </snapshotRepository> <repository> <id>artifact-registry</id> <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url> </repository> </distributionManagement> <repositories> <repository> <id>artifact-registry</id> <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</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>רכיבי
<release>ו-<snapshot>מציינים אם במאגר מאוחסנות חבילות של גרסאות, חבילות של תמונות מצב או שניהם. ההגדרות האלה צריכות להתאים למדיניות הגרסאות של המאגר.האלמנט
<build>מגדיר את ה-wagon של Artifact Registry כהרחבה. מידע על wagon מופיע במסמכי העזרה של הכלים של Artifact Registry Maven.
מרחוק או וירטואלי
עורכים את הקובץ
pom.xmlבפרויקט. לפרטים על מבנה הקובץ, עיינו בחומר העזר בנושא POM של Maven.בדוגמה הבאה מוצגות הגדרות של מאגר מרוחק שמאחסן גם גרסאות של תמונת מצב וגם גרסאות הפצה. בדוגמה הזו, הפרויקט תלוי בגרסה של חבילת Guava.
<?xml version="1.0" encoding="UTF-8"?> <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"> <modelVersion>4.0.0</modelVersion> <groupId>com.google.hello</groupId> <artifactId>repo-config</artifactId> <version>4.1-SNAPSHOT</version> <description>version 1 release</description> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.0-jre</version> </dependency> </dependencies> <repositories> <repository> <id>central</id> <name>Maven Central remote repository</name> <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url> <layout>default</layout> <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> </project>בקטע
<repositories>מוגדר מאגר Artifact Registry. במאגר מרוחק, צריך להגדיר את הרכיב<id>בתורcentral. ההגדרה הזו משנה את ערך ברירת המחדל של מזהה המאגרcentral, שעובר בירושה מ-Super POM.הקטע
<build>מגדיר את ה-wagon של Artifact Registry כתוסף. למידע על ה-wagon, קראו את המאמר כלי Maven של Artifact Registry.בדוגמה הזו, בקטע
<dependencies>מוגדרת תלות בחבילה Guava בגרסה28.0-jre.
Maven פותר כמה יחסי תלות לפני שהוא מחיל wagon שמוגדר ב-
pom.xml, כולל:- הפניות בפרויקט Maven משני לפרויקט ראשי באמצעות הרכיב
<parent>. - יחסי תלות של תוספים שמאוחסנים ב-Artifact Registry.
אם צריך לפתור את יחסי התלות האלה בפרויקט, צריך להשתמש במנגנון תוספי הליבה כדי לוודא ש-Maven יכול לאתר קובצי POM ופלאגינים הורים.
בפרויקט, יוצרים את הקובץ
${maven.projectBasedir}/.mvn/extensions.xmlעם התוכן הבא. הרכיב<extension>מגדיר את הקרון.<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd"> <extension> <groupId>com.google.cloud.artifactregistry</groupId> <artifactId>artifactregistry-maven-wagon</artifactId> <version>2.2.5</version> </extension> </extensions>עכשיו Maven יכול לפתור יחסי תלות של הורה או פלאגין מ-Artifact Registry.
- הפניות בפרויקט Maven משני לפרויקט ראשי באמצעות הרכיב
ההגדרה של האימות הושלמה.
הגדרת Gradle
מגדירים את Gradle בהתאם לסוג המאגר שבו משתמשים.
רגילה
מריצים את הפקודה הבאה כדי להדפיס את הגדרות המאגר ולהוסיף אותן לפרויקט ב-Java.
gcloud artifacts print-settings gradle \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATIONכאשר:
- PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט ברירת המחדל או בפרויקט הנוכחי.
- REPOSITORY הוא המזהה של המאגר. אם הגדרתם מאגר ברירת מחדל של Artifact Registry, המאגר הזה ישמש אתכם אם לא תציינו מאגר אחר בפקודה.
- LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
מוסיפים את הגדרות המאגר לקובץ
build.gradle. בדוגמה הבאה מוצג המיקום היחסי של החלקים המודפסים.plugins { id "maven-publish" id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.5" } publishing { publications { mavenJava(MavenPublication) { groupId 'maven.example.id' from components.java } } repositories { maven { url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY" } } } repositories { maven { url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY" } }בקטע
pluginsמצהירים על התוסף Artifact Registry. מידע על הפלאגין זמין במאמרי העזרה בנושא כלים של Artifact Registry Maven.בקטע
publishingמגדירים את הקבצים שרוצים להעלות ואת מאגר היעד ב-Artifact Registry. כשמוכנים להעלות, אפשר לעדכן את רשימת הקבצים בקטעpublications. מידע על הגדרות הפרסום זמין במסמכי העזרה של Maven Publish plugin.
מרחוק או וירטואלי
מוסיפים את הגדרות המאגר לקובץ
build.gradle.בדוגמה הבאה מוצגות הגדרות של מאגר מרוחק. בדוגמה הזו, הפרויקט תלוי בגרסה של חבילת Guava.
plugins { id 'java' id "maven-publish" id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.5" id 'maven' } repositories { maven { url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME" } } dependencies { compile "com.google.guava:guava:31.1-jre" }בקטע
pluginsמצהירים על התוסף Artifact Registry. מידע על הפלאגין זמין במאמרי העזרה בנושא כלים של Artifact Registry Maven.בקטע
repositoriesמוגדר מאגר Artifact Registry.בדוגמה הזו, בקטע
dependenciesמוגדרת תלות בחבילה Guava בגרסה31.1-jre.
מגדירים את יחסי התלות של החבילה בקטע
dependencies.אם אתם צריכים להשתמש במאגרים בקובץ
init.gradleאוsettings.gradle, אתם יכולים להוסיף את הגדרת הפלאגין לקבצים האלה.מוסיפים את ההגדרה הבאה ל-
init.gradle:initscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.5" } } apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePluginבקובץ settings.gradle, מוסיפים את ההגדרה הבאה:
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.5" } } apply plugin: "com.google.cloud.artifactregistry.gradle-plugin"
ההגדרה של האימות הושלמה.
הגדרת אימות סיסמה
כדאי להשתמש בגישה הזו כשהאפליקציה שלכם ב-Java דורשת אימות עם שם משתמש וסיסמה ספציפיים.
הגדרה של חשבון שירות לאימות באמצעות סיסמה
כדי ליצור חשבון שירות:
יוצרים חשבון שירות שיפעל בשם האפליקציה, או בוחרים חשבון שירות קיים שמשמש לאוטומציה.
כדי להגדיר אימות באמצעות Artifact Registry, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף Service Accounts.
כדי להפעיל את חשבון השירות בסשן הנוכחי של ה-CLI של gcloud, מריצים את הפקודה:
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILEכאשר:
- ACCOUNT הוא המשתמש או חשבון השירות.
- KEY-FILE הוא הנתיב לקובץ המפתח של חשבון השירות בפורמט JSON.
הגדרת Maven
מגדירים את Maven לפי סוג המאגר שבו משתמשים.
רגילה
מריצים את הפקודה הבאה כדי להדפיס את הגדרות המאגר ולהוסיף אותן לפרויקט ב-Java.
gcloud artifacts print-settings mvn \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --json-key=KEY-FILEכאשר:
- PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט ברירת המחדל או בפרויקט הנוכחי.
- REPOSITORY הוא המזהה של המאגר. אם הגדרתם מאגר ברירת מחדל של Artifact Registry, המערכת תשתמש בו אם לא תציינו את הדגל הזה בפקודה.
- LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
- KEY-FILE הוא הנתיב לקובץ מפתח JSON של חשבון השירות.
הפקודה מחזירה הגדרות שצריך לכלול בפרויקט Java, כולל גרסה בקידוד base64 של המפתח הפרטי.
- מוסיפים את הגדרות המאגר שהוחזרו ברכיב
<project>לקטעים המתאימים בקובץpom.xmlשל פרויקט Maven. לפרטים על מבנה הקובץ, עיינו בחומר העזר בנושא POM של Maven.
<project> <distributionManagement> <snapshotRepository> <id>artifact-registry</id> <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url> </snapshotRepository> <repository> <id>artifact-registry</id> <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url> </repository> </distributionManagement> <repositories> <repository> <id>artifact-registry</id> <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </project>הרכיבים
<release>ו-<snapshot>מציינים אם המאגר מאחסן חבילות של גרסאות, חבילות של תמונות מצב או את שתיהן. ההגדרות האלה צריכות להתאים למדיניות הגרסאות של המאגר.- מוסיפים את הגדרות האימות שהוחזרו ברכיב
<settings>לקטע<servers>בקובץ~/.m2/settings.xml. בדוגמה הבאה,KEYהוא המפתח בקידוד Base64 מקובץ המפתח.
מידע נוסף מופיע בהפניה להגדרות של Maven.
<settings> <servers> <server> <id>artifact-registry</id> <configuration> <httpConfiguration> <get> <usePreemptive>true</usePreemptive> </get> <head> <usePreemptive>true</usePreemptive> </head> <put> <params> <property> <name>http.protocol.expect-continue</name> <value>false</value> </property> </params> </put> </httpConfiguration> </configuration> <username>_json_key_base64</username> <password>KEY</password> </server> </servers> </settings>מרחוק או וירטואלי
מוסיפים את הגדרות המאגר לקטעים המתאימים בקובץ
pom.xmlשל פרויקט Maven. פרטים על מבנה הקובץ מופיעים בהפניה ל-POM של Maven.<repositories> <repository> <id>central</id> <name>Maven Central remote repository</name> <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url> <layout>default</layout> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
בקטע
<repositories>מוגדר מאגר Artifact Registry. במאגר מרוחק, צריך להגדיר את הרכיב<id>בתורcentral. ההגדרה הזו מבטלת את ערך ברירת המחדל של מזהה המאגרcentralשעובר בירושה מ-Super POM.מקודדים את קובץ המפתח ב-Base64 באמצעות הפקודה הבאה. מחליפים את KEY-FILE בשם של קובץ המפתח.
base64 -w 0 KEY-FILEמוסיפים הגדרות אימות ברכיב
<settings>לקטע<servers>בקובץ~/.m2/settings.xml.
מידע נוסף מופיע בהסבר על ההגדרות של Maven.
<settings> <servers> <server> <id>artifact-registry</id> <configuration> <httpConfiguration> <get> <usePreemptive>true</usePreemptive> </get> <head> <usePreemptive>true</usePreemptive> </head> <put> <params> <property> <name>http.protocol.expect-continue</name> <value>false</value> </property> </params> </put> </httpConfiguration> </configuration> <username>_json_key_base64</username> <password>KEY</password> </server> </servers> </settings>- אם אתם משתמשים בנקודות קצה של HTTP ורוצים להשתמש בקישוריות Maven native לאימות, אתם יכולים להעביר כותרת אימות באמצעות כותרת Custom HTTP ב-
settings.xml.
דוגמה:
<settings> <servers> <server> <id>artifact-registry</id> <configuration> <httpHeaders> <property> <name>Authorization </name> <value>Bearer ${artifact.registry.token}</value> </property> </httpHeaders> <httpConfiguration> <get> <usePreemptive>true</usePreemptive> </get> <head> <usePreemptive>true</usePreemptive> </head> <put> <params> <property> <name>http.protocol.expect-continue</name> <value>false</value> </property> </params> </put> </httpConfiguration> </configuration> </server> </servers> </settings>
הגדרת האימות הושלמה.
הגדרת Gradle
מגדירים את Gradle בהתאם לסוג המאגר שבו משתמשים.
רגילה
מריצים את הפקודה הבאה כדי להדפיס את הגדרות המאגר ולהוסיף אותן לפרויקט ב-Java.
gcloud artifacts print-settings gradle \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --json-key=KEY-FILEכאשר:
- PROJECT הוא מזהה הפרויקט.
- REPOSITORY הוא המזהה או המזהה המוגדר במלואו של המאגר. אם הגדרתם מאגר ברירת מחדל של Artifact Registry, המערכת תשתמש בו אם לא תציינו את הדגל הזה בפקודה.
- KEY-FILE הוא הנתיב לקובץ מפתח JSON של חשבון השירות. אם הרצתם את הפקודה להפעלת חשבון השירות, אתם יכולים להשמיט את הדגל הזה.
הפקודה מחזירה הגדרות שצריך לכלול בפרויקט Java, כולל גרסה בקידוד base64 של המפתח הפרטי.
השורה הבאה מההגדרה שמוחזרת מגדירה משתנה בשם
artifactRegistryMavenSecretלמפתח של חשבון השירות. מוסיפים את השורה הזו לקובץ~/.gradle/gradle.propertiesכדי שהמפתח לא יהיה גלוי בגרסאות ה-build או במאגר של בקרת המקור.artifactRegistryMavenSecret = KEYבשורה הזו, KEY הוא המפתח הפרטי בקובץ המַפְתח של חשבון השירות. במקרה של
_json_key_base64, הערך שלartifactRegistryMavenSecretמוגדר כמפתח בקידוד base64 בתור הסיסמה.מציינים את הגדרות המאגר בקובץ
build.gradle:plugins { id "maven-publish" } publishing { publications { mavenJava(MavenPublication) { groupId 'maven.example.id' from components.java } } repositories { maven { url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY" credentials { username = "_json_key_base64" password = "$artifactRegistryMavenSecret" } authentication { basic(BasicAuthentication) } } } } repositories { maven { url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY" credentials { username = "_json_key_base64" password = "$artifactRegistryMavenSecret" } authentication { basic(BasicAuthentication) } } }- בקטע
repositoriesמגדירים את כתובת ה-URL של המאגר ואת פרטי הכניסה לאימות. - בקטע
publishingמגדירים את הקבצים שרוצים להעלות ואת מאגר היעד ב-Artifact Registry. כשתהיו מוכנים להעלות את הקבצים, תוכלו לעדכן את רשימת הקבצים בקטעpublications. מידע על הגדרות הפרסום זמין במסמכי התיעוד של הפלאגין Maven Publish.
- בקטע
מרחוק או וירטואלי
מבצעים קידוד Base64 של קובץ המפתח באמצעות הפקודה הבאה. מחליפים את KEY-FILE בשם של קובץ המפתח.
base64 -w 0 KEY-FILEבקובץ
~/.gradle/gradle.properties, מוסיפים את השורה הבאה כדי שהמפתח לא יוצג בגרסאות או במאגר של בקרת המקור.artifactRegistryMavenSecret = KEYבשורה הזו, KEY הוא התוכן של קובץ המפתח בקידוד base64.
מוסיפים את הגדרות המאגר לקובץ
build.gradle.
בדוגמה הבאה מוצגת הגדרה של מאגר מרוחק.
plugins { id 'java' id "maven-publish" id 'maven' } repositories { maven { url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME" credentials { username = "_json_key_base64" password = "$artifactRegistryMavenSecret" } authentication { basic(BasicAuthentication) } dependencies { compile "com.google.guava:guava:31.1-jre" }בקטע
repositoriesמוגדר מאגר Artifact Registry.בדוגמה הזו, בקטע
dependenciesמוגדרת תלות בחבילה Guava בגרסה31.1-jre.
מגדירים את יחסי התלות של החבילה בקטע
dependencies.
ההגדרה של האימות הושלמה.