Authentifizierung für Maven und Gradle einrichten

Sie müssen sich bei Artifact Registry authentifizieren, wenn Sie eine Drittanbieteranwendung verwenden, um eine Verbindung zu einem Artifact Registry-Repository herzustellen. In dieser Dokumentation geht es um die Konfiguration von Maven und Gradle.

Sie müssen die Authentifizierung für Cloud Build- oder Google Cloud-Laufzeitumgebungen wie Google Kubernetes Engine und Cloud Run nicht konfigurieren, sollten aber prüfen, ob die erforderlichen Berechtigungen konfiguriert sind. Weitere Informationen finden Sie unter Cloud Build und Bereitstellung in Google Cloud-Laufzeitumgebungen.

Hinweis

  1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init
  2. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
  3. Wenn Sie die Authentifizierung mit einem Standard-Repository konfigurieren, prüfen Sie die Versionsrichtlinie, damit Sie Ihr Maven-Projekt für die Typen von Java-Paketen, die Sie hochladen können, richtig konfigurieren können.

    Console

    1. Öffnen Sie in der Google Cloud Console die Seite Repositories.

      Zur Seite „Repositories“

    2. Klicken Sie auf das Repository, bei dem Sie sich authentifizieren möchten.

      Im Abschnitt Details wird die Versionsrichtlinie angezeigt. Wenn das Repository eine Snapshot-Versionsrichtlinie hat, wird im Feld Snapshot-Überschreibungen zulassen angegeben, 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=LOCATION]
    

    WHERE

    Die Ausgabe des Befehls enthält Informationen zur Versionsrichtlinie unter mavenConfig. In diesem Beispiel hat das Repository eine Snapshot-Versionsrichtlinie und Snapshots können keine identischen Versionen im Repository überschreiben.

    Encryption: Google-managed key
    createTime: '2021-10-04T19:39:10.897404Z'
    format: MAVEN
    mavenConfig:
      allowSnapshotOverwrites: false
      versionPolicy: SNAPSHOT
    

    Wenn ein Repository keine Versionsrichtlinie hat, lautet 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 nicht die Standardanmeldedaten für Anwendungen, jedoch die Authentifizierung mit Nutzername 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 einen Maven-Waggon und ein Gradle-Plug-in als Credential Helper. Wenn Sie den Credential Helper verwenden, werden Ihre Anmeldedaten nicht in Ihrem Java-Projekt gespeichert. Stattdessen sucht Artifact Registry nach Anmeldedaten in der folgenden Reihenfolge:

  1. Standardanmeldedaten für Anwendungen (ADC), eine Strategie, die in der folgenden Reihenfolge nach Anmeldedaten sucht:

    1. In der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS definierte Anmeldedaten.

    2. Anmeldedaten, die das Standarddienstkonto für Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine oder Cloud Functions bietet.

  2. 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, wodurch die Fehlerbehebung einfacher wird. Wenn Sie die Variable nicht verwenden, prüfen Sie, ob alle Konten, die ADC verwenden könnten, die erforderlichen Berechtigungen haben. Das Standarddienstkonto für Compute Engine-VMs, Google Kubernetes Engine-Knoten und Cloud Run-Überarbeitungen hat beispielsweise Lesezugriff auf Repositories. Wenn Sie einen Upload aus diesen Umgebungen mit dem Standarddienstkonto vornehmen möchten, müssen Sie die Berechtigungen ändern.

Dienstkonto einrichten

So erstellen Sie ein Dienstkonto und richten die Authentifizierung mithilfe der Umgebungsvariable ein:

  1. 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.

    Zur Seite „Dienstkonten“

  2. Gewähren Sie dem Dienstkonto die entsprechende Artifact Registry-Rolle, um den Zugriff auf das Repository zu ermöglichen.

  3. Weisen Sie der Variablen GOOGLE_APPLICATION_CREDENTIALS den 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-FILE
    

    Dabei ist KEY-FILE der Pfad zur Schlüsseldatei des Dienstkontos.

Maven konfigurieren

  1. Konfigurieren Sie Maven für den von Ihnen verwendeten Repository-Typ.

    Standard

    1. 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]
      

      WHERE

      • 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 Artifact Registry-Repository vom Typ default konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl fehlt.
      • LOCATION ist der regionale oder multiregionale Standort für das Repository.
    2. Fügen Sie die zurückgegebenen Einstellungen in die entsprechenden Abschnitte der Datei pom.xml für Ihr Maven-Projekt ein. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu Maven.

      Im folgenden Beispiel sehen Sie die Einstellungen für ein Repository, in dem sowohl die Snapshot- als auch die Release-Version gespeichert sind.

      <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.0</version>
          </extension>
        </extensions>
      </build>
      

      Die Elemente <release> und <snapshot> geben an, ob das Repository Release- und Snapshot-Pakete oder beides speichert. Diese Einstellungen sollten der Versionsrichtlinie für das Repository entsprechen.

      Das Element <build> definiert den Artifact Registry-Wagen als Erweiterung. Weitere Informationen zum Wagen finden Sie in der Dokumentation zu den Maven-Tools für Artifact Registry.

    Remote oder virtuell

    Bearbeiten Sie die Datei pom.xml in Ihrem Projekt. Weitere Informationen zur Struktur der Datei finden Sie in der POM-Referenz zu Maven.

    Im folgenden Beispiel sehen Sie die Einstellungen für ein Remote-Repository, in dem sowohl die Snapshot- als auch die Release-Version gespeichert ist. In diesem Beispiel ist das Projekt von einer Version des Guava-Pakets abhängig.

    <?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.0</version>
          </extension>
        </extensions>
      </build>
    </project>
    
    • Im Abschnitt <repositories> wird das Artifact Registry-Repository definiert. Für ein Remote-Repository muss das <id>-Element auf central festgelegt sein. Diese Einstellung überschreibt den Standardwert für die Repository-ID central, die vom Super POM übernommen wird.

    • Im Abschnitt <build> wird der Artifact Registry-Wagen als Erweiterung festgelegt. Informationen zum Wagen finden Sie in der Dokumentation zu den [Maven-Tools für Artifact Registry][maven-tools]{:class="external"}.

    • In diesem Beispiel wird im Abschnitt <dependencies>eine Abhängigkeit von der Paketversion 28.0-jre festgelegt.

  2. Maven löst einige Abhängigkeiten auf, bevor ein in pom.xml definierter Wagen angewendet wird, darunter:

    • Verweise in einem untergeordneten Maven-Projekt auf ein übergeordnetes Projekt mit dem Element <parent>.
    • Plug-in-Abhängigkeiten, die in Artifact Registry gespeichert sind.

    Wenn Ihr Projekt diese Abhängigkeiten beheben muss, müssen Sie mit dem Kernerweiterungsmechanismus dafür sorgen, dass Maven übergeordnete POM-Dateien und Plug-ins finden kann.

    Erstellen Sie in Ihrem Projekt die Datei ${maven.projectBasedir}/.mvn/extensions.xml mit 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.0</version>
      </extension>
    </extensions>
    

    Maven kann jetzt übergeordnete oder Plug-in-Abhängigkeiten aus Artifact Registry auflösen.

Die Authentifizierungskonfiguration ist abgeschlossen.

Gradle konfigurieren

  1. Konfigurieren Sie Gradle für den von Ihnen verwendeten Repository-Typ.

    Standard

    1. 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]
      

      WHERE

      • 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 Artifact Registry-Repository vom Typ default konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl fehlt.
      • LOCATION ist der regionale oder multiregionale Standort für das Repository.
    2. Fügen Sie die Repository-Einstellungen der Datei build.gradle hinzu. Das folgende Beispiel zeigt die relative Position der gedruckten Abschnitte.

      plugins {
        id "maven-publish"
        id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
      }
      
      publishing {
        publications {
          mavenJava(MavenPublication) {
            groupId 'maven.example.id'
            from components.java
           }
        }
        repositories {
          maven {
            url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
          }
        }
      }
      
      • Im Abschnitt plugins wird 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 publishing werden die hochzuladenden Dateien und das Artifact Registry-Ziel-Repository definiert. Sie können die Dateiliste im Abschnitt publications aktualisieren, 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.gradle hinzu.

    Das folgende Beispiel zeigt die Einstellungen für ein Remote-Repository. In diesem Beispiel ist das Projekt von einer Version des Guava-Pakets abhängig.

    plugins {
      id 'java'
      id "maven-publish"
      id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
      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 plugins wird 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 repositories wird das Artifact Registry-Repository definiert.

    • In diesem Beispiel wird im Abschnitt dependencieseine Abhängigkeit von der Paketversion 31.1-jre festgelegt.

    Definieren Sie die Abhängigkeiten für Ihr Paket im Abschnitt dependencies.

  2. Wenn Sie Repositories in der Datei init.gradle oder settings.gradle verwenden möchten, können Sie die Plug-in-Konfiguration in diese Dateien einfügen.

    Fügen Sie für init.gradle die 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.0"
      }
    }
    apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin
    

    Fü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.0"
      }
    }
    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 einrichten

So erstellen Sie ein Dienstkonto:

  1. 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.

    Zur Seite „Dienstkonten“

  2. 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-FILE
    

    WHERE

    • ACCOUNT ist das Nutzer- oder Dienstkonto.
    • KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos.

Maven konfigurieren

  1. Konfigurieren Sie Maven für den von Ihnen verwendeten Repository-Typ.

    Standard

    1. 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-FILE
      

      WHERE

    Der Befehl gibt Einstellungen zurück, die in Ihr Java-Projekt einbezogen werden sollen, einschließlich einer base64-codierten Version des privaten Schlüssels.

    1. Fügen Sie die zurückgegebenen Repository-Einstellungen im Element <project> den entsprechenden Abschnitten der Datei pom.xml fü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 das Repository Release- und Snapshot-Pakete oder beides speichert. Diese Einstellungen sollten der Versionsrichtlinie für das Repository entsprechen.

    1. Fügen Sie die zurückgegebenen Authentifizierungseinstellungen im Element <settings> zum Abschnitt <servers> der Datei ~/.m2/settings.xml hinzu. Im folgenden Beispiel ist KEY der 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

    1. Fügen Sie die Repository-Einstellungen den entsprechenden Abschnitten der Datei pom.xml fü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. Für ein Remote-Repository muss das <id>-Element auf central festgelegt sein. Diese Einstellung überschreibt den Standardwert für die Repository-ID central, die vom Super POM übernommen wird.

    1. Base64-codieren Sie Ihre Schlüsseldatei mit dem folgenden Befehl. Ersetzen Sie KEY-FILE durch den Namen Ihrer Schlüsseldatei.

      base64 -w 0 KEY-FILE
      
    2. Fügen Sie dem Abschnitt <servers> der Datei ~/.m2/settings.xml Authentifizierungseinstellungen im Element <settings> hinzu.

    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>
    

Die Authentifizierungskonfiguration ist abgeschlossen.

Gradle konfigurieren

  1. Konfigurieren Sie Gradle für den von Ihnen verwendeten Repository-Typ.

    Standard

    1. 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-FILE
      

      WHERE

      • 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 einbezogen werden sollen, einschließlich einer base64-codierten Version des privaten Schlüssels.

    2. Die folgende Zeile aus der zurückgegebenen Konfiguration definiert eine Variable mit dem Namen artifactRegistryMavenSecret für Ihren Dienstkontoschlüssel. Fügen Sie diese Zeile der Datei ~/.gradle/gradle.properties hinzu, damit der Schlüssel in den Builds oder Ihrem Quellkontroll-Repository nicht sichtbar ist.

      artifactRegistryMavenSecret = KEY
      

      In dieser Zeile ist KEY der private Schlüssel in der Schlüsseldatei des Dienstkontos. Für _json_key_base64 wird artifactRegistryMavenSecret auf den base64-codierten Schlüssel als Passwort festgelegt.

    3. Geben Sie in build.gradle die Repository-Einstellungen an:

      plugins {
        id "maven-publish"
      }
      
      publishing {
        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 repositories werden die Repository-URL und die Anmeldedaten für die Authentifizierung festgelegt.
      • Im Abschnitt publishing werden die hochzuladenden Dateien und das Artifact Registry-Ziel-Repository definiert. Sie können die Dateiliste im Abschnitt publications aktualisieren, 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

    1. Base64-codieren Sie Ihre Schlüsseldatei mit dem folgenden Befehl. Ersetzen Sie KEY-FILE durch den Namen Ihrer Schlüsseldatei.

      base64 -w 0 KEY-FILE
      
    2. Fügen Sie in der Datei ~/.gradle/gradle.properties die folgende Zeile hinzu, damit Ihr Schlüssel nicht in Ihren Builds oder Ihrem Repository für die Versionsverwaltung sichtbar ist.

      artifactRegistryMavenSecret = KEY
      

      In dieser Zeile ist KEY der Inhalt Ihrer base64-codierten Schlüsseldatei.

    3. Fügen Sie die Repository-Einstellungen der Datei build.gradle hinzu.

    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 repositories wird das Artifact Registry-Repository definiert.

    • In diesem Beispiel wird im Abschnitt dependencieseine Abhängigkeit von der Paketversion 31.1-jre festgelegt.

    Definieren Sie die Abhängigkeiten für Ihr Paket im Abschnitt dependencies.

Die Authentifizierungskonfiguration ist abgeschlossen.

Nächste Schritte