Risolvere i problemi relativi ai pacchetti Java

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

Impossibile risolvere una dipendenza archiviata in Artifact Registry

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

  • Fa riferimento a un progetto Maven secondario a un progetto padre utilizzando l'elemento <parent>.
  • Dipendenze del 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 file e plug-in POM principali.

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

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

Impossibile caricare snapshot non univoci in un repository di snapshot

Puoi caricare versioni di 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 unici sono una funzionalità di Maven 2. Maven 3 aggiunge sempre un timestamp ai numeri di versione degli snapshot in modo che ogni versione dello snapshot sia univoca.

Artifact Registry supporta solo versioni di snapshot non univoche nei repository con un criterio di versione dello 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 scoprire le impostazioni dei criteri di versione per un repository, esegui il comando seguente:

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 località a livello di una o più aree geografiche per il repository.

L'output del comando include informazioni sul criterio di versione in mavenConfig. Nell'esempio seguente, il repository ha un criterio di versione dello 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