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 für die Verwendung von Repositories erfahren Sie, wie Remote- und virtuelle Repositories verwendet werden können.
- Gewähren Sie Berechtigungen für das Konto, das mit dem Repository verbunden wird. Dienstkonten für gängige Integrationen mit Artifact Registry haben Standardberechtigungen für Repositories im selben Projekt.
- Konfigurieren Sie die Tools:
- 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, steht ein von der Community erstelltes sbt-Plug-in zur Verfügung. In dieser Dokumentation wird nicht die Konfiguration oder Verwendung von Scala-Clients beschrieben.
- Konfigurieren Sie Cloud Build für das Hoch- und Herunterladen von Paketen.
- 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
im 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, sodass jede Snapshot-Version eindeutig ist. Maven 2 unterstützt nicht eindeutige Snapshot-Versionen, um vorhandene Snapshots in einem Repository zu überschreiben. Dieser Ansatz ist für die Reproduzierbarkeit von Builds problematisch. Daher 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 im Maven-Projekt bei jeder Veröffentlichung im Repository zu erhöhen. Während der Entwicklung können andere Projekte mit Abhängigkeiten vom Paket 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 für die Versionsreihenfolge.
Releases
Wenn Sie bereit sind, ein Paket freizugeben, entfernen Sie das Suffix -SNAPSHOT
aus der Versionsnummer in der POM-Datei und aktualisieren Sie alle Projekte, die vom Paket abhängig sind, sodass sie die Release-Version anstelle der Snapshot-Version verwenden.
Sie können mit dem folgenden Befehl die Abhängigkeitsstruktur filtern, um alle Snapshot-Abhängigkeiten aufzulisten:
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 Release-Pakete.
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.