Solución de problemas para paquetes de Java

Obtén información sobre los pasos para solucionar problemas que pueden resultarte útiles 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 mediante el elemento <parent>
  • Dependencias de complementos almacenadas en Artifact Registry.

Si tu proyecto necesita resolver estas dependencias, debes usar el mecanismo de extensiones principales para asegurarte de que Maven pueda encontrar archivos y complementos 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.1.4</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 existe en el repositorio.

Las instantáneas no únicas son una característica de Maven 2. Maven 3 siempre agrega una marca de tiempo a los números de versión de las instantáneas 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 versiones cuando creas el repositorio.

A fin de obtener 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.

En el resultado del comando, se 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 la instantánea y las instantáneas no pueden reemplazar las versiones idénticas en el repositorio.

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