Risoluzione dei 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 vagone 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 progetto deve risolvere queste dipendenze, devi utilizzare il meccanismo delle estensioni principali per garantire che Maven possa individuare i file e i plug-in POM padre.

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 degli snapshot che non esistono in un repository 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 solo versioni degli snapshot non univoche nei repository con un criterio della 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 un repository Artifact Registry predefinito, questo viene utilizzato quando questo flag viene omesso dal comando.
  • PROJECT è l'ID progetto. Se questo flag viene omesso, viene utilizzato il progetto attuale o predefinito.
  • LOCATION è la località a livello di una o più regioni per il repository.

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