Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung bei Problemen mit der Verwaltung von Java-Paketen in der Artifact Registry.
In Artifact Registry gespeicherte Abhängigkeit kann nicht aufgelöst werden
Maven löst einige Abhängigkeiten auf, bevor ein in pom.xml
definierter 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 diese Abhängigkeiten in Ihrem Projekt aufgelöst werden müssen, 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.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.4</version>
</extension>
</extensions>
Nicht eindeutige Snapshots können nicht in ein Snapshot-Repository hochgeladen werden
Sie können Snapshot-Versionen hochladen, die in einem Artifact Registry-Snapshot-Repository nicht vorhanden sind. Sie können jedoch keine Version überschreiben, die bereits im Repository vorhanden ist.
Nicht eindeutige Snapshots sind eine Funktion von Maven 2. Maven 3 fügt Snapshot-Versionsnummern immer einen Zeitstempel hinzu, damit jede Snapshot-Version eindeutig ist.
Artifact Registry unterstützt nicht eindeutige Snapshot-Versionen nur in Repositories mit einer Richtlinie für Snapshot-Versionen. Standardmäßig werden in Snapshot-Repositories nur eindeutige Snapshot-Versionen akzeptiert. Sie können eine Versionsrichtlinie nur beim Erstellen des Repositories festlegen.
Führen Sie den folgenden Befehl aus, um die Einstellungen für die Versionsrichtlinie für ein Repository zu ermitteln:
gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] \
[--location=LOCATION]
Dabei gilt:
- 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 unter mavenConfig
Informationen zur Versionsrichtlinie. Im folgenden Beispiel gibt es für das Repository eine Richtlinie für Snapshot-Versionen und Snapshots können keine identischen Versionen im Repository überschreiben.
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT