Cómo solucionar problemas de paquetes de Java

Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades para administrar paquetes de Java en Artifact Registry.

No se puede resolver una dependencia almacenada en Artifact Registry

Maven resuelve algunas dependencias antes de aplicar un vagón definido en pom.xml, incluido lo siguiente:

  • Referencias en un proyecto secundario de Maven a un proyecto superior a través de <parent>.
  • Dependencias de complementos almacenadas en Artifact Registry.

Si tu proyecto necesita resolver estas dependencias, debes usar el extensiones principales para garantizar que Maven pueda localizar archivos POM y complementos superiores.

En tu proyecto, crea el archivo ${maven.projectBasedir}/.mvn/extensions.xml con el siguiente contenido. El elemento <extension> define la alternativa.

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

No se pueden subir instantáneas no únicas a un repositorio de instantáneas.

Puedes subir versiones de instantáneas que no existen en un Artifact Registry en el repositorio de instantáneas, pero no puedes reemplazar una versión que ya existe del repositorio.

Las instantáneas no únicas son una función de Maven 2. Maven 3 siempre agrega una marca de tiempo a los números de versión de la instantánea para que cada versión sea única.

Artifact Registry solo es compatible con versiones de instantáneas que no son únicas en con una política de versiones de instantáneas. Repositorios de instantáneas de forma predeterminada solo aceptan versiones únicas de las instantáneas. Solo puedes establecer una política de versión cuando de crear el repositorio.

Si quieres conocer la configuración de la política de versiones para un repositorio, ejecuta el siguiente comando: :

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

Dónde

  • REPOSITORY es el ID del repositorio. Si configuraste un repositorio predeterminado de Artifact Registry, se usa cuando se omite esta marca del comando.
  • PROJECT es el ID del proyecto. Si se omite esta marca, se usa el proyecto predeterminado o actual.
  • LOCATION es la ubicación regional o multirregional del repositorio.

El resultado del comando incluye información sobre la política de la versión por debajo de mavenConfig. En el siguiente ejemplo, el repositorio tiene una instantánea la política de versiones y las instantáneas no pueden reemplazar versiones idénticas en el en un repositorio de confianza.

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