Sie müssen sich bei Artifact Registry authentifizieren, wenn Sie eine Drittanbieteranwendung für die Verbindung mit einem Artifact Registry-Repository verwenden. In dieser Dokumentation wird die Konfiguration von Maven und Gradle beschrieben.
Sie müssen die Authentifizierung für Cloud Build oder Google Cloud-Laufzeitumgebungen wie Google Kubernetes Engine und Cloud Run nicht konfigurieren. Sie sollten jedoch prüfen, ob die erforderlichen Berechtigungen konfiguriert sind. Weitere Informationen finden Sie unter Cloud Build und Bereitstellung in Google Cloud Laufzeitumgebungen.
Hinweise
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
- (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
Wenn Sie die Authentifizierung mit einem Standardrepository konfigurieren, prüfen Sie die Versionsrichtlinie, damit Sie Ihr Maven-Projekt richtig für die Arten von Java-Paketen konfigurieren können, die Sie hochladen können.
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Klicken Sie auf das Repository, für das Sie sich authentifizieren möchten.
Im Bereich Details wird die Versionsrichtlinie angezeigt. Wenn für das Repository eine Snapshot-Versionsrichtlinie gilt, gibt das Feld Überschreibungen von Snapshots zulassen an, ob Snapshots übereinstimmende Snapshot-Versionen im Repository überschreiben können.
gcloud
Führen Sie den folgenden Befehl aus, um eine Beschreibung eines Repositorys aufzurufen.
gcloud artifacts repositories describe REPOSITORY \ --project=PROJECT \ --location=LOCATIONWo
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
Die Ausgabe des Befehls enthält Informationen zur Versionsrichtlinie unter
mavenConfig. In diesem Beispiel hat das Repository eine Snapshot-Versionsrichtlinie und Snapshots können identische Versionen im Repository nicht überschreiben.Encryption: Google-owned and Google-managed encryption key createTime: '2021-10-04T19:39:10.897404Z' format: MAVEN mavenConfig: allowSnapshotOverwrites: false versionPolicy: SNAPSHOTWenn ein Repository keine Versionsrichtlinie hat, ist der Wert von
mavenConfig{}.
Übersicht
Artifact Registry unterstützt die folgenden Authentifizierungsmethoden.
- Authentifizierungshelfer verwenden
- Diese Option bietet die größte Flexibilität. Wenn Sie den Helper in die Maven- oder Gradle-Konfiguration aufnehmen, sucht Artifact Registry nach Dienstkonto-Anmeldedaten in der Umgebung.
- Dienstkontoschlüssel als Anmeldedaten angeben
- Verwenden Sie diese Option, wenn eine Anwendung die Standardanmeldedaten für Anwendungen nicht unterstützt, jedoch die Authentifizierung mit einem Nutzernamen und Passwort unterstützt.
Dienstkontoschlüssel sind langlebige Anmeldedaten. Verwenden Sie die folgenden Richtlinien, um den Zugriff auf Ihre Repositories einzuschränken:
- Verwenden Sie ein dediziertes Dienstkonto für die Interaktion mit Repositories.
- Erteilen Sie die vom Dienstkonto erforderliche Artifact Registry-Mindestrolle. Weisen Sie z. B. Artifact Registry-Reader einem Dienstkonto zu, das nur Artefakte herunterlädt.
- Wenn Gruppen in Ihrer Organisation verschiedene Zugriffsebenen für bestimmte Repositories benötigen, erteilen Sie den Zugriff auf Repository-Ebene und nicht auf Projektebene.
- Folgen Sie den Best Practices für die Verwaltung von Anmeldedaten.
Mit Credential Helper authentifizieren
Artifact Registry bietet ein Maven-Wagon und ein Gradle-Plug-in als Credential Helper. Wenn Sie Credential Helper verwenden, werden Ihre Anmeldedaten nicht in Ihrem Java-Projekt gespeichert. Stattdessen sucht Artifact Registry in der folgenden Reihenfolge nach Anmeldedaten:
Standardanmeldedaten für Anwendungen (ADC), eine Strategie, die in der folgenden Reihenfolge nach Anmeldedaten sucht:
In der Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALSdefinierte Anmeldedaten.Anmeldedaten, die das Standarddienstkonto für Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine oder Cloud Run-Funktionen bietet.
Von der Google Cloud CLI bereitgestellte Anmeldedaten, einschließlich Nutzeranmeldedaten aus dem Befehl
gcloud auth application-default login.
Die Variable GOOGLE_APPLICATION_CREDENTIALS macht das Konto für die Authentifizierung explizit, was die Fehlerbehebung erleichtert. Wenn Sie die Variable nicht verwenden, prüfen Sie, ob alle Konten, die ADC möglicherweise verwendet, die erforderlichen Berechtigungen haben. Das Standarddienstkonto für Compute Engine-VMs, Google Kubernetes Engine-Knoten und Cloud Run-Revisionen hat beispielsweise Lesezugriff auf Repositories. Wenn Sie aus diesen Umgebungen mit dem Standarddienstkonto hochladen möchten, müssen Sie die Berechtigungen ändern.
Dienstkonto für einen Anmeldedaten-Helper einrichten
So erstellen Sie ein Dienstkonto und richten die Authentifizierung mithilfe der Umgebungsvariable ein:
Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agieren soll, oder wählen Sie ein vorhandenes Dienstkonto für die Automatisierung aus.
Sie benötigen den Speicherort der Dienstkonto-Schlüsseldatei, um damit die Authentifizierung bei Artifact Registry einzurichten. Auf der Seite „Dienstkonten“ können Sie die Schlüssel vorhandener Konten aufrufen und neue Schlüssel erstellen.
Gewähren Sie dem Dienstkonto die entsprechende Artifact Registry-Rolle, um den Zugriff auf das Repository zu ermöglichen.
Weisen Sie der Variablen
GOOGLE_APPLICATION_CREDENTIALSden Speicherort des Dienstkontoschlüssels zu, damit die Artifact Registry-Credential Helper Ihren Schlüssel beim Herstellen einer Verbindung zu Repositories abrufen können.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILEDabei ist KEY-FILE der Pfad zur Schlüsseldatei des Dienstkontos.
Maven konfigurieren
Konfigurieren Sie Maven für den Repository-Typ, den Sie verwenden.
Standard
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration zu drucken und sie dem Java-Projekt hinzuzufügen.
gcloud artifacts print-settings mvn \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATIONWo
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
Fügen Sie die zurückgegebenen Einstellungen in die entsprechenden Abschnitte der Datei
pom.xmlfür Ihr Maven-Projekt ein. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu Maven.Das folgende Beispiel zeigt die Einstellungen für ein Repository, in dem sowohl Snapshot- als auch Release-Versionen gespeichert werden.
<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>Die Elemente
<release>und<snapshot>geben an, ob im Repository Release-Pakete, Snapshot-Pakete oder beides gespeichert wird. Diese Einstellungen sollten der Versionsrichtlinie des Repositorys entsprechen.Das
<build>-Element definiert den Artifact Registry-Wagon als Erweiterung. Informationen zu Wagon finden Sie in der Dokumentation zu den Maven-Tools für Artifact Registry.
Remote oder virtuell
Bearbeiten Sie die Datei
pom.xmlin Ihrem Projekt. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu Maven.Das folgende Beispiel zeigt die Einstellungen für ein Remote-Repository, in dem sowohl Snapshot- als auch Release-Versionen gespeichert werden. In diesem Beispiel hat das Projekt eine Abhängigkeit von einer Version des Guava-Pakets.
<?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>Im Abschnitt
<repositories>wird das Artifact Registry-Repository definiert. Bei einem Remote-Repository muss das Element<id>aufcentralgesetzt werden. Mit dieser Einstellung wird der Standardwert für diecentral-Repository-ID überschrieben, die vom Super-POM übernommen wird.Im Abschnitt
<build>wird der Artifact Registry-Wagon als Erweiterung festgelegt. Informationen zu Wagon finden Sie in der Dokumentation zu den Maven-Tools für Artifact Registry.In diesem Beispiel wird im Abschnitt
<dependencies>eine Abhängigkeit von der Paketversion28.0-jrevon Guava festgelegt.
Maven löst einige Abhängigkeiten auf, bevor ein in
pom.xmldefinierter Wagon angewendet wird, darunter:- Verweise in einem untergeordneten Maven-Projekt auf ein übergeordnetes Projekt mit dem Element
<parent>. - In Artifact Registry gespeicherte Plug-in-Abhängigkeiten.
Wenn Ihr Projekt diese Abhängigkeiten auflösen muss, müssen Sie den Mechanismus Core Extensions verwenden, damit Maven übergeordnete POM-Dateien und Plug-ins finden kann.
Erstellen Sie in Ihrem Projekt die Datei
${maven.projectBasedir}/.mvn/extensions.xmlmit folgendem Inhalt. Das<extension>-Element definiert das Wagon.<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 kann übergeordnete oder Plug-in-Abhängigkeiten jetzt von Artifact Registry auflösen.
- Verweise in einem untergeordneten Maven-Projekt auf ein übergeordnetes Projekt mit dem Element
Die Authentifizierungskonfiguration ist abgeschlossen.
Gradle konfigurieren
Konfigurieren Sie Gradle für den Typ des Repositorys, das Sie verwenden.
Standard
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration zu drucken und sie dem Java-Projekt hinzuzufügen.
gcloud artifacts print-settings gradle \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATIONWo
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
Fügen Sie die Repository-Einstellungen der Datei
build.gradlehinzu. Das folgende Beispiel zeigt die relative Position der gedruckten Abschnitte.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" } }Im Abschnitt
pluginswird das Artifact Registry-Plug-in deklariert. Informationen zum Plug-in finden Sie in der Dokumentation zu den Maven-Tools für Artifact Registry.Im Abschnitt
publishingwerden die hochzuladenden Dateien und das Ziel-Artifact Registry-Repository definiert. Sie können die Dateiliste im Abschnittpublicationsaktualisieren, wenn Sie die Datei hochladen können. Informationen zu den Veröffentlichungseinstellungen finden Sie in der Dokumentation zum Maven-Publish-Plug-in.
Remote oder virtuell
Fügen Sie die Repository-Einstellungen der Datei
build.gradlehinzu.Das folgende Beispiel zeigt Einstellungen für ein Remote-Repository. In diesem Beispiel hat das Projekt eine Abhängigkeit von einer Version des Guava-Pakets.
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" }Im Abschnitt
pluginswird das Artifact Registry-Plug-in deklariert. Informationen zum Plug-in finden Sie in der Dokumentation zu den Maven-Tools für Artifact Registry.Im Abschnitt
repositorieswird das Artifact Registry-Repository definiert.In diesem Beispiel wird im Abschnitt
dependencieseine Abhängigkeit von der Paketversion31.1-jrevon Guava festgelegt.
Definieren Sie die Abhängigkeiten für Ihr Paket im Abschnitt
dependencies.Wenn Sie Repositories in der Datei
init.gradleodersettings.gradleverwenden möchten, können Sie die Plug-in-Konfiguration in diese Dateien einfügen.Fügen Sie für
init.gradledie folgende Konfiguration hinzu: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.ArtifactRegistryGradlePluginFügen Sie für „settings.gradle” die folgende Konfiguration hinzu:
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"
Die Authentifizierungskonfiguration ist abgeschlossen.
Passwortauthentifizierung konfigurieren
Verwenden Sie diesen Ansatz, wenn Ihre Java-Anwendung eine Authentifizierung mit einem angegebenen Nutzernamen und Passwort erfordert.
Dienstkonto für die Passwortauthentifizierung einrichten
So erstellen Sie ein Dienstkonto:
Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agieren soll, oder wählen Sie ein vorhandenes Dienstkonto für die Automatisierung aus.
Sie benötigen den Speicherort der Dienstkonto-Schlüsseldatei, um damit die Authentifizierung bei Artifact Registry einzurichten. Auf der Seite „Dienstkonten“ können Sie die Schlüssel vorhandener Konten aufrufen und neue Schlüssel erstellen.
Wenn Sie das Dienstkonto in der aktuellen gcloud CLI-Sitzung aktivieren möchten, führen Sie den folgenden Befehl aus:
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILEWo
- ACCOUNT ist das Nutzer- oder Dienstkonto.
- KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos.
Maven konfigurieren
Konfigurieren Sie Maven für den Repository-Typ, den Sie verwenden.
Standard
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration zu drucken und sie dem Java-Projekt hinzuzufügen.
gcloud artifacts print-settings mvn \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --json-key=KEY-FILEWo
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
- KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos.
Der Befehl gibt Einstellungen zurück, die in Ihr Java-Projekt aufgenommen werden müssen, einschließlich einer base64-codierten Version Ihres privaten Schlüssels.
verwenden.- Fügen Sie die zurückgegebenen Repository-Einstellungen im Element
<project>den entsprechenden Abschnitten der Dateipom.xmlfür Ihr Maven-Projekt hinzu. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu 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>Die Elemente
<release>und<snapshot>geben an, ob im Repository Release-Pakete, Snapshot-Pakete oder beides gespeichert wird. Diese Einstellungen sollten der Versionsrichtlinie des Repositorys entsprechen.- Fügen Sie die zurückgegebenen Authentifizierungseinstellungen im Element
<settings>zum Abschnitt<servers>der Datei~/.m2/settings.xmlhinzu. Im folgenden Beispiel istKEYder base64-codierte Schlüssel aus Ihrer Schlüsseldatei.
Weitere Informationen finden Sie in der Referenz zu Maven-Einstellungen.
<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>Remote oder virtuell
Fügen Sie die Repository-Einstellungen den entsprechenden Abschnitten der Datei
pom.xmlfür Ihr Maven-Projekt hinzu. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu 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>
Im Abschnitt
<repositories>wird das Artifact Registry-Repository definiert. Bei einem Remote-Repository muss das Element<id>aufcentralgesetzt werden. Mit dieser Einstellung wird der Standardwert für diecentral-Repository-ID überschrieben, die vom Super-POM übernommen wird.Codieren Sie Ihre Schlüsseldatei mit dem folgenden Befehl mit Base64. Ersetzen Sie KEY-FILE durch den Namen Ihrer Schlüsseldatei.
base64 -w 0 KEY-FILEFügen Sie die Authentifizierungseinstellungen im Element
<settings>zum Abschnitt<servers>der Datei~/.m2/settings.xmlhinzu.
Weitere Informationen finden Sie in der Referenz zu Maven-Einstellungen.
verwenden.<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>- Wenn Sie HTTP-Endpunkte verwenden und sich mit Maven Native authentifizieren möchten, können Sie einen Authentifizierungsheader über einen benutzerdefinierten HTTP-Header in der
settings.xmlübergeben.
Beispiel:
<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>
Die Authentifizierungskonfiguration ist abgeschlossen.
Gradle konfigurieren
Konfigurieren Sie Gradle für den Typ des Repositorys, das Sie verwenden.
Standard
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration zu drucken und sie dem Java-Projekt hinzuzufügen.
gcloud artifacts print-settings gradle \ --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --json-key=KEY-FILEWo
- PROJECT ist die Projekt-ID.
- REPOSITORY ist die ID oder die vollständig qualifizierte Kennzeichnung für das Repository. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos. Wenn Sie den Befehl zur Aktivierung Ihres Dienstkontos ausgeführt haben, können Sie dieses Flag weglassen.
Der Befehl gibt Einstellungen zurück, die in Ihr Java-Projekt aufgenommen werden müssen, einschließlich einer base64-codierten Version Ihres privaten Schlüssels.
Die folgende Zeile aus der zurückgegebenen Konfiguration definiert eine Variable mit dem Namen
artifactRegistryMavenSecretfür Ihren Dienstkontoschlüssel. Fügen Sie diese Zeile der Datei~/.gradle/gradle.propertieshinzu, damit der Schlüssel in den Builds oder Ihrem Quellkontroll-Repository nicht sichtbar ist.artifactRegistryMavenSecret = KEYIn dieser Zeile ist KEY der private Schlüssel in der Schlüsseldatei Ihres Dienstkontos. Für
_json_key_base64wirdartifactRegistryMavenSecretauf den base64-codierten Schlüssel als Passwort gesetzt.Geben Sie in
build.gradledie Repository-Einstellungen an: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) } } }- Im Abschnitt
repositorieswerden die Repository-URL und die Anmeldedaten für die Authentifizierung festgelegt. - Im Abschnitt
publishingwerden die hochzuladenden Dateien und das Ziel-Artifact Registry-Repository definiert. Sie können die Dateiliste im Abschnittpublicationsaktualisieren, wenn Sie die Datei hochladen können. Informationen zu den Veröffentlichungseinstellungen finden Sie in der Dokumentation zum Maven-Publish-Plug-in.
- Im Abschnitt
Remote oder virtuell
Codieren Sie Ihre Schlüsseldatei mit dem folgenden Befehl mit Base64. Ersetzen Sie KEY-FILE durch den Namen Ihrer Schlüsseldatei.
base64 -w 0 KEY-FILEFügen Sie in der Datei
~/.gradle/gradle.propertiesdie folgende Zeile hinzu, damit der Schlüssel in den Builds oder Ihrem Quellkontroll-Repository nicht sichtbar ist.artifactRegistryMavenSecret = KEYIn dieser Zeile ist KEY der Inhalt Ihrer base64-codierten Schlüsseldatei.
Fügen Sie die Repository-Einstellungen der Datei
build.gradlehinzu.
Das folgende Beispiel zeigt die Konfiguration eines Remote-Repositorys.
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" }Im Abschnitt
repositorieswird das Artifact Registry-Repository definiert.In diesem Beispiel wird im Abschnitt
dependencieseine Abhängigkeit von der Paketversion31.1-jrevon Guava festgelegt.
Definieren Sie die Abhängigkeiten für Ihr Paket im Abschnitt
dependencies.
Die Authentifizierungskonfiguration ist abgeschlossen.