Hier finden Sie hilfreiche Informationen über die schrittweise Fehlerbehebung bei Problemen mit der Verwaltung von Java-Paketen in Artifact Registry.
Eine in Artifact Registry gespeicherte Abhängigkeit kann nicht aufgelöst werden
Maven löst einige Abhängigkeiten auf, bevor ein in pom.xml
definierter Wagen angewendet wird, darunter:
- Verweise in einem untergeordneten Maven-Projekt mithilfe des Elements
<parent>
auf ein übergeordnetes Projekt. - In Artifact Registry gespeicherte Plug-in-Abhängigkeiten.
Wenn diese Abhängigkeiten in Ihrem Projekt aufgelöst werden müssen, müssen Sie die Kernerweiterungen 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.1</version>
</extension>
</extensions>
Snapshots, die nicht eindeutig sind, können nicht in ein Snapshot-Repository hochgeladen werden
Sie können Snapshot-Versionen hochladen, die nicht in einem Snapshot-Repository von Artifact Registry vorhanden sind. Eine bereits im Repository vorhandene Version kann jedoch nicht überschrieben werden.
Nicht eindeutige Snapshots sind ein Feature von Maven 2. Maven 3 fügt den Snapshot-Versionsnummern immer einen Zeitstempel hinzu, sodass jede Snapshot-Version eindeutig ist.
Artifact Registry unterstützt nur nicht eindeutige Snapshot-Versionen in Repositories mit einer Snapshot-Versionsrichtlinie. Snapshot-Repositories akzeptieren standardmäßig nur eindeutige Snapshot-Versionen. Sie können eine Versionsrichtlinie nur beim Erstellen des Repositorys festlegen.
Führen Sie den folgenden Befehl aus, um die Versionsrichtlinieneinstellungen für ein Repository zu ermitteln:
gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] \
[--location=LOCATION]
Wo
- 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 Informationen zur Versionsrichtlinie unter mavenConfig
. Im folgenden Beispiel hat das Repository eine Snapshot-Versionsrichtlinie und Snapshots können identische Versionen im Repository nicht überschreiben.
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT