Risolvere i problemi relativi ai pacchetti Java

Scopri i passaggi per la risoluzione dei problemi, utili in caso di problemi di gestione dei pacchetti Java in Artifact Registry.

Impossibile risolvere una dipendenza archiviata in Artifact Registry

Maven risolve alcune dipendenze prima di applicare un wagon definito in pom.xml, tra cui:

  • Riferimenti in un progetto Maven secondario a un progetto principale utilizzando l'elemento <parent>.
  • Dipendenze dei plug-in archiviate in Artifact Registry.

Se il tuo progetto deve risolvere queste dipendenze, devi utilizzare il meccanismo delle estensioni di base per assicurarti che Maven possa individuare i file POM e i plug-in principali.

Nel progetto, crea il file ${maven.projectBasedir}/.mvn/extensions.xml con i seguenti contenuti. L'elemento <extension> definisce il vagone.

<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>

Impossibile caricare snapshot non univoci in un repository di snapshot

Puoi caricare versioni degli snapshot che non esistono in un repository di snapshot di Artifact Registry, ma non puoi sovrascrivere una versione già esistente nel repository.

Gli snapshot non univoci sono una funzionalità di Maven 2. Maven 3 aggiunge sempre un timestamp ai numeri di versione degli snapshot in modo che ogni versione sia univoca.

Artifact Registry supporta le versioni degli snapshot non univoche solo nei repository con una policy di versione degli snapshot. Per impostazione predefinita, i repository di snapshot accettano solo versioni di snapshot univoche. Puoi impostare un criterio di versione solo quando crei il repository.

Per conoscere le impostazioni del criterio di versione per un repository, esegui il seguente comando:

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

Dove

  • REPOSITORY è l'ID del repository. Se hai configurato un repository Artifact Registry predefinito, viene utilizzato quando questo flag viene omesso dal comando.
  • PROJECT è l'ID progetto. Se questo flag viene omesso, viene utilizzato il progetto corrente o predefinito.
  • LOCATION è la posizione regionale o multiregionale del repository.

L'output del comando include informazioni sulle norme relative alle versioni in mavenConfig. Nell'esempio seguente, il repository ha un criterio di versione per gli snapshot e gli snapshot non possono sovrascrivere versioni identiche nel repository.

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