כשמשתמשים באפליקציית צד שלישי כדי להתחבר למאגר של Artifact Registry, צריך לבצע אימות ב-Artifact Registry. המסמכים האלה מתמקדים בהגדרות של Maven ו-Gradle.
אין צורך להגדיר אימות ל-Cloud Build או לסביבות זמן ריצה כמו Google Kubernetes Engine ו-Cloud Run, אבל כדאי לוודא שההרשאות הנדרשות מוגדרות. Google Cloudמידע נוסף זמין במאמרים בנושא Cloud Build ופריסה בסביבות זמן ריצה של Google Cloud .
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- (אופציונלי) הגדרת ברירות מחדל לפקודות gcloud.
אם אתם מגדירים אימות באמצעות מאגר סטנדרטי, אתם צריכים לבדוק את מדיניות הגרסאות כדי להגדיר את פרויקט Maven בצורה נכונה לסוגי חבילות Java שאתם יכולים להעלות.
המסוף
פותחים את הדף Repositories במסוף Google Cloud .
לוחצים על המאגר שרוצים לבצע בו אימות.
בקטע פרטים מוצגת מדיניות הגרסאות. אם במאגר יש מדיניות לגבי גרסאות של תמונות מצב, בשדה 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 plugin כעוזרים לפרטי הכניסה. כשמשתמשים בכלי העזר לפרטי הכניסה, פרטי הכניסה לא נשמרים בפרויקט 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>מוגדרת עגלת Artifact Registry כתוסף. מידע על wagon זמין במסמכי העזרה של הכלים של Artifact Registry Maven.בדוגמה הזו, בקטע
<dependencies>מוגדרת תלות בחבילה Guava בגרסה28.0-jre.
Maven פותר חלק מהתלות לפני שהוא מחיל קרון שמוגדר ב-
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, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בחשבונות קיימים, אפשר לראות את המפתחות וליצור מפתחות חדשים בדף 'חשבונות שירות'.
כדי להפעיל את חשבון השירות בסשן הנוכחי של ה-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כדי שהמפתח לא יהיה גלוי בגרסאות או במאגר של בקרת המקור.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 plugin.
- בקטע
מרחוק או וירטואלי
מבצעים קידוד 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.
ההגדרה של האימות הושלמה.