Risoluzione dei problemi del pacchetto 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 padre utilizzando 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 tuo progetto, crea il file ${maven.projectBasedir}/.mvn/extensions.xml con i seguenti contenuti. L'elemento <extension> definisce di un 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.3</version>
  </extension>
</extensions>

Impossibile caricare snapshot non univoci in un repository di snapshot

Puoi caricare versioni degli snapshot che non esistono in 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 solo versioni di snapshot non univoche in dei repository con un criterio 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 scoprire le impostazioni dei criteri di versione per un repository, esegui questo comando: :

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

Dove

  • REPOSITORY è l'ID del repository. Se hai configurato Artifact Registry predefinito repository, 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 sul criterio di versione sotto mavenConfig. Nell'esempio seguente, il repository include uno snapshot il criterio di versione e gli snapshot non possono sovrascrivere versioni identiche nel repository Git.

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