Probleme mit dem Java-Paket beheben

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

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