Java-Pakete verwalten

Auf dieser Seite wird beschrieben, wie Java-Pakete hinzugefügt, angezeigt und gelöscht werden.

Wenn Sie sbt als Build-Tool für Scala und Java anstelle von Maven oder Gradle verwenden möchten, steht ein von der Community erstelltes sbt-Plug-in zur Verfügung. In dieser Dokumentation werden die Konfiguration oder Verwendung von Scala-Clients nicht beschrieben.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.
  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
  3. Prüfen Sie, ob Sie die Authentifizierung konfiguriert haben. Wenn Sie ein Zugriffstoken verwenden, müssen Sie es aktualisieren, bevor Sie eine Verbindung zum Repository herstellen.
  4. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Verwalten von Paketen benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für das Repository:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Pakete hinzufügen

Repository-Modi:Standard

So fügen Sie dem Repository Pakete hinzu:

Maven

Verwenden Sie mvn deploy und mvn release, um dem Repository Pakete hinzuzufügen.

Zum Bereitstellen eines Maven-Projekts, das auf ein übergeordnetes Element verweist, muss das Projekt den Artifact Registry-Wagon-Anbieter in eine Core-Erweiterungsdatei einfügen, wie in der Authentifizierungsanleitung beschrieben.

Verwenden Sie mvn deploy:deploy-file, um Artefakte hochzuladen, die außerhalb von Maven erstellt wurden.

Beispiel: Dieser Befehl stellt example/external.jar und die Projektdatei example/pom.xml im Repository us-central1-maven.pkg.dev/my-project/my-repo bereit.

mvn deploy:deploy-file \
-Durl=artifactregistry://us-central1-maven.pkg.dev/my-project/my-repo \
-DpomFile=example/pom.xml -Dfile=example/external.jar

Informationen zum Konfigurieren der Einbindung mit Cloud Build finden Sie unter In Cloud Build einbinden.

Gradle

Für eine erfolgreiche Veröffentlichung im Repository muss die Datei build.gradle einen Publikations-Abschnitt enthalten, der die hochzuladenden Dateien definiert.

Verwenden Sie den Befehl gradle publish, um ein Paket in das Repository hochzuladen.

Pakete und Versionen ansehen

Repository-Modi: Standard, Remote

To view packages and package versions using the Google Cloud console or gcloud:

Console

  1. Open the Repositories page in the Google Cloud console.

    Zur Seite „Repositories“

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of the package.

gcloud

To list packages in a repository, run the following command:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Where

  • REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
  • LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.

To view versions of a package, run the following command:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Where

  • PACKAGE is the ID of the package or fully qualified identifier for the package.
  • REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
  • LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.

Bei Remote-Repositories sollte die zurückgegebene Liste alle direkten und transitiven Abhängigkeiten enthalten.

Dateien auflisten

Repository-Modi: standard, remote

Sie können Dateien in einem Repository auflisten, Dateien in allen Versionen einer bestimmten Paket oder Dateien in einer bestimmten Version eines Pakets.

Für alle folgenden Befehle können Sie eine maximale Anzahl von Dateien festlegen, die zurückgegeben werden sollen indem Sie dem Befehl das Flag --limit hinzufügen.

So listen Sie alle Dateien im Standardprojekt, im Standard-Repository und am Standard-Speicherort auf, wenn die Standardwerte konfiguriert sind:

gcloud artifacts files list

Führen Sie den folgenden Befehl aus, um Dateien in einem bestimmten Projekt, Repository und an einem bestimmten Speicherort aufzulisten:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

So listen Sie Dateien für alle Versionen eines bestimmten Pakets auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

So listen Sie Dateien für eine bestimmte Paketversion auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION

Ersetzen Sie die folgenden Werte:

  • LOCATION: die regional oder multiregional Speicherort des Repositorys.
  • PROJECT: Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Domain-übergreifende Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • PACKAGE: der Name des Pakets.
  • VERSION: die Version des Pakets.

Beispiele

Sehen Sie sich die folgenden Paketinformationen an:

  • Projekt: my-project
  • Repository: my-repo
  • Speicherort des Repositorys: us-west1
  • Paket: my-app

Mit dem folgenden Befehl werden alle Dateien im Repository my-repo im Speicherort us-west1 innerhalb des Standardprojekts:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Mit dem folgenden Befehl werden Dateien in Version 1.0 des Pakets aufgelistet.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0

Pakete herunterladen

Repository-Modi: Standard, Remote, Virtual

Zum Herunterladen eines Artefakts als Teil Ihres Builds deklaren Sie das Artefakt als Abhängigkeit.

Maven

  1. Deklarieren Sie die Pakete, die Sie herunterladen möchten, in der pom.xml-Datei des Projekts. Im folgenden Beispiel wird Version 1.0 des Pakets artifact als Abhängigkeit deklariert.

    <dependencies>
        <dependency>
            <groupId>group</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
    

    Weitere Informationen zu Maven-Abhängigkeiten finden Sie in der Maven-Einführung zu Abhängigkeiten und der Referenz für Abhängigkeiten.

  2. Erstellen Sie das Java-Projekt.

    mvn compile
    

Gradle

  1. Deklarieren Sie die Pakete an, die Sie herunterladen möchten in der build.gradle-Datei des Projekts. Im folgenden Beispiel wird Version 1.0 des Pakets artifact als externe Kompilierungsabhängigkeit deklariert.

    Weitere Informationen zu Gradle-Abhängigkeiten finden Sie in der Gradle-Dokumentation.

    dependencies {
        compile group: 'group', name: 'artifact', version: '1.0'
    }
    
  2. Erstellen Sie das Java-Projekt.

    gradle build
    

Bei Standard-Repositories laden Sie ein Paket direkt aus dem Repository herunter.

Bei einem Remote-Repository laden Sie eine im Cache gespeicherte Kopie des Pakets und seiner Abhängigkeiten herunter. Wenn keine Cache-Kopie vorhanden ist, lädt das Remote-Repository das Paket von der Upstream-Quelle herunter und speichert es im Cache, bevor es an Sie gesendet wird. Sie können prüfen, ob das Remote-Repository die Pakete aus der Upstream-Quelle abgerufen hat, indem Sie sich die Liste der Pakete im Repository ansehen.

Bei einem virtuellen Repository durchsucht Artifact Registry Upstream-Repositories für das angeforderte Paket.

  • Upstream-Remote-Repositories laden das angeforderte Paket herunter und speichern es im Cache, wenn keine im Cache gespeicherte Kopie vorhanden ist. Virtuelle Repositories stellen nur angeforderte Pakete bereit, sie speichern sie nicht.
  • Wenn Sie eine Version anfordern, die in mehreren Upstream-Repositories verfügbar ist, wählt Artifact Registry basierend auf den für das virtuelle Repository konfigurierten Prioritätseinstellungen ein Upstream-Repository aus.

Angenommen, Sie haben ein virtuelles Repository mit den folgenden Prioritätseinstellungen für Upstream-Repositories:

  • main-repo: Priorität auf 100 festgelegt
  • secondary-repo1: Priorität auf 80 festgelegt.
  • secondary-repo2: Priorität auf 80 festgelegt.
  • test-repo: Priorität auf 20 festgelegt.

main-repo hat den höchsten Prioritätswert, sodass das virtuelle Repository und sucht immer zuerst danach.

Sowohl für secondary-repo1 als auch für secondary-repo2 ist die Priorität auf 80 festgelegt. Wenn ein Das angeforderte Paket ist in main-repo, Artifact Registry nicht verfügbar diese Repositories als Nächstes durchsucht. Da beide denselben Prioritätswert haben, kann Artifact Registry ein Paket aus einem der beiden Repositories bereitstellen, wenn die Version in beiden verfügbar ist.

test-repo hat den niedrigsten Prioritätswert und ein gespeichertes Artefakt wird bereitgestellt, wenn es in keinem der anderen Upstream-Repositories vorhanden ist.

Pakete und Versionen löschen

Repository-Modi: standard, remote

Sie können ein Paket und alle zugehörigen Versionen oder eine bestimmte Version löschen.

  • Wenn Sie ein Paket löschen, kann dieser Vorgang nicht mehr rückgängig gemacht werden.
  • Bei Remote-Repositories wird nur die im Cache gespeicherte Kopie des Pakets gelöscht. Die vorgelagerte Quelle ist davon nicht betroffen. Wenn Sie ein im Cache gespeichertes Paket löschen, Artifact Registry wird es beim nächsten Mal herunterladen und im Cache Repository eine Anfrage für dieselbe Paketversion erhält.

Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.

To delete a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Zur Seite „Repositories“

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Select the package that you want to delete.

  4. Click DELETE.

  5. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Where

  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
  • LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
  • --async Return immediately, without waiting for the operation in progress to complete.

To delete versions of a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Zur Seite „Repositories“

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of that package.

  4. Select versions that you want to delete.

  5. Click DELETE.

  6. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Where

  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, you can omit this flag to use the default.
  • LOCATION is a regional or multi-regional location. Use this flag to view repositories in a specific location. If you configured a default location, you can omit this flag to use the default.
  • --async returns immediately, without waiting for the operation in progress to complete.

Nächste Schritte