Soluciona problemas de paquetes de Java

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

No se puede resolver una dependencia almacenada en Artifact Registry.

Maven resuelve algunas dependencias antes de aplicar un vagon definido en pom.xml, incluidas las siguientes:

  • Referencias en un proyecto de Maven secundario a un proyecto superior con 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 ubicar 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 que no sean únicas a un repositorio de instantáneas

Puedes subir versiones de instantáneas que no existan 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 de la instantánea sea única.

Artifact Registry solo admite versiones de instantáneas no únicas en repositorios con una política de versión de instantáneas. 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 versión de un repositorio, ejecuta el siguiente comando:

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

¿Por 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 en mavenConfig. En el siguiente ejemplo, el repositorio tiene una política de versión de instantánea, 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