Artifact Registry unterstützt Java-Pakete, die Sie mit Maven und Gradle erstellen.
Überblick
Mit der quickstart können Sie sich mit Java-Paketen in Artifact Registry vertraut machen. Sie können sich auch ein Übersichtsvideo ansehen.
Wenn Sie mehr erfahren möchten, lesen Sie die folgenden Informationen:
- Erstellen Sie ein Java-Paket-Repository für Ihre Pakete.
- Remote-Repositories und virtuelle Repositories erstellen
- In diesem Beispiel zur Verwendung von Repositories erfahren Sie, wie Remote- und virtuelle Repositories verwendet werden können.
- Gewähren Sie Berechtigungen für das Konto, über das eine Verbindung mit dem Repository hergestellt wird. Dienstkonten für gängige Integrationen mit Artifact Registry haben Standardberechtigungen für Repositories im selben Projekt.
- Tools konfigurieren:
- Konfigurieren Sie die Authentifizierung für Maven oder Gradle.
- Wenn Sie anstelle von Maven oder Gradle sbt als Build-Tool für Scala und Java verwenden möchten, können Sie ein von der Community erstelltes sbt-Plug-in verwenden. In dieser Dokumentation wird nicht die Konfiguration oder Verwendung von Scala-Clients beschrieben.
- Cloud Build konfigurieren, um Pakete hoch- und herunterzuladen
- Bereitstellen in Google Cloud-Laufzeitumgebungen
- Informationen zum Verwalten von Paketen.
Maven-Snapshot und Releaseversionen
Maven unterscheidet zwischen Snapshot- und Release-Versionen Ihrer Maven-Projekte.
Snapshots
Ein Snapshot ist eine Vorabversion eines Java-Projekts. Die Versionsnummer für einen Snapshot enthält das Suffix -SNAPSHOT
in Ihrem Projektobjektmodell (POM). Diese Einstellung in der Datei pom.xml
gilt beispielsweise für eine 1.0
-Version des Projekts, das sich in der Entwicklung befindet:
<version>1.0-SNAPSHOT</version>
Wenn Sie ein Paket aus diesem Projekt veröffentlichen, hängt Maven 3 automatisch einen Zeitstempel an die Snapshot-Versionsnummer an, damit jede Snapshot-Version eindeutig ist. Maven 2 unterstützt nicht eindeutige Snapshot-Versionen, um vorhandene Snapshots in einem Repository zu überschreiben. Dieser Ansatz ist problematisch für die Reproduzierbarkeit von Builds. Aus diesem Grund unterstützt Maven 3 keine nicht eindeutigen Snapshots mehr.
Snapshots bieten Ihnen die Möglichkeit, aktualisierte Versionen eines Vorabveröffentlichungspakets iterativ zu veröffentlichen, ohne die Versionsnummer in Ihrem Maven-Projekt bei jeder Veröffentlichung im Repository zu erhöhen. Während der Entwicklung können andere Projekte mit Abhängigkeiten vom Paket dann den neuesten Snapshot der Version 1.0
aus dem Repository abrufen.
Weitere Informationen zur Syntax und Sortierreihenfolge der Maven-Versionsnummer finden Sie in der Spezifikation der Versionsreihenfolge.
Releases
Wenn Sie ein Paket freigeben möchten, entfernen Sie das Suffix -SNAPSHOT
aus der Versionsnummer in der POM-Datei und aktualisieren Sie alle vom Paket abhängigen Projekte, sodass sie die Release-Version anstelle der Snapshot-Version verwenden.
Zum Auflisten aller Snapshot-Abhängigkeiten können Sie mit dem folgenden Befehl die Abhängigkeitsstruktur filtern:
mvn dependency:tree -Dincludes=:::*-SNAPSHOT
Artifact Registry-Versionsrichtlinie
Wenn Sie ein Maven-Repository in Artifact Registry erstellen, können Sie eine Maven-Versionsrichtlinie angeben:
- Keine: Speichert sowohl Snapshot- als auch Release-Pakete. Dies ist die Standardeinstellung.
- Snapshot: Speichert nur Snapshot-Pakete.
- Release: Speichert nur Releasepakete.
Wenn Sie die Richtlinie für Snapshot-Versionen auswählen, können Sie auch angeben, ob das Repository nicht eindeutige Snapshot-Versionen zulässt, die übereinstimmende Versionen im Repository überschreiben. Wir empfehlen, eindeutige Versionen zu verwenden, da Maven 3 das Modell für nicht eindeutige Versionen nicht unterstützt.
Video zur Verwendung von Hangouts Meet (in englischer Sprache)
In diesem Video erhalten Sie einen Überblick über Artifact Registry und erfahren, wie Sie Artifact Registry mit Cloud Build verwenden können, um mit Java-Paketen zu arbeiten. Weitere Informationen zur Verwendung von Cloud Build mit Artifact Registry finden Sie unter In Cloud Build einbinden.