Probleme mit Java-Paketen beheben

Hier finden Sie Informationen zur Fehlerbehebung, die hilfreich sein können, wenn Sie Probleme beim Verwalten 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, einschließlich:

  • 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.3</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 ein Feature von Maven 2. Maven 3 fügt immer einen Zeitstempel hinzu in die Versionsnummern von Snapshots ein, 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 nur dann eine Versionsrichtlinie festlegen, wenn erstellen Sie das Repository.

Führen Sie den folgenden Befehl aus, um die Einstellungen für die Versionsrichtlinie für ein Repository aufzurufen:

gcloud artifacts repositories describe REPOSITORY \
    [--project=PROJECT] \
    [--location=LOCATION]

Dabei gilt:

Die Ausgabe des Befehls enthält Informationen zur Versionsrichtlinie. unter mavenConfig. Im folgenden Beispiel hat das Repository einen Snapshot Versionsrichtlinie und Snapshots können identische Versionen im zu erstellen.

Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
 allowSnapshotOverwrites: false
 versionPolicy: SNAPSHOT