Cómo solucionar problemas del paquete 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 carrito definido en pom.xml, incluidos los siguientes:

  • Referencias de un proyecto secundario de Maven a un proyecto superior mediante el elemento <parent>
  • Dependencias del complemento almacenadas en Artifact Registry.

Si tu proyecto necesita resolver estas dependencias, debes usar el mecanismo de extensiones principales para garantizar que Maven pueda ubicar los archivos y complementos de POM 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 repositorio de instantáneas de Artifact Registry, pero no puedes reemplazar una versión que ya exista en el 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 admite versiones de instantáneas no únicas en repositorios con una política de versión de instantánea. De forma predeterminada, los repositorios de instantáneas solo aceptan versiones de instantáneas únicas. Solo puedes establecer una política de versión cuando creas el repositorio.

Para averiguar la configuración de la política de versiones de un repositorio, ejecuta el siguiente comando:

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

Donde

  • 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 en mavenConfig. En el siguiente ejemplo, el repositorio tiene una política de versión de instantáneas, y las instantáneas no pueden reemplazar versiones idénticas en el repositorio.

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