Résoudre les problèmes liés aux packages Java

Découvrez les étapes de dépannage qui pourraient vous être utiles si vous rencontrez des problèmes lors de la gestion des packages Java dans Artifact Registry.

Impossible de résoudre une dépendance stockée dans Artifact Registry

Maven résout certaines dépendances avant d'appliquer un wagon défini dans pom.xml, y compris:

  • Les références d'un projet Maven enfant à un projet parent à l'aide de l'élément <parent>
  • Dépendances des plug-ins stockées dans Artifact Registry

Si votre projet doit résoudre ces dépendances, vous devez utiliser le mécanisme des extensions principales pour vous assurer que Maven peut localiser les fichiers et plug-ins POM parents.

Dans votre projet, créez le fichier ${maven.projectBasedir}/.mvn/extensions.xml avec le contenu suivant. L'élément <extension> définit le wagon.

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

Impossible d'importer des instantanés non uniques dans un dépôt d'instantanés

Vous pouvez importer des versions d'instantanés qui n'existent pas dans un dépôt d'instantanés Artifact Registry, mais vous ne pouvez pas écraser une version qui existe déjà dans le dépôt.

Les instantanés non uniques sont une fonctionnalité de Maven 2. Maven 3 ajoute toujours un horodatage aux numéros de version d'instantanés afin que chaque version d'instantané soit unique.

Artifact Registry n'accepte que les versions d'instantanés non uniques dans les dépôts disposant d'une règle de version d'instantané. Par défaut, les dépôts d'instantanés n'acceptent que les versions d'instantanés uniques. Vous ne pouvez définir une stratégie de version que lorsque vous créez le dépôt.

Pour connaître les paramètres de la stratégie de version d'un dépôt, exécutez la commande suivante:

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

  • REPOSITORY est l'ID du dépôt. Si vous avez configuré un dépôt Artifact Registry par défaut, il est utilisé lorsque cette option est omise dans la commande.
  • PROJECT est l'ID de projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION est l'emplacement régional ou multirégional du dépôt.

Le résultat de la commande inclut des informations sur la stratégie de version sous mavenConfig. Dans l'exemple suivant, le dépôt contient une règle de version d'instantané, et les instantanés ne peuvent pas écraser les versions identiques du dépôt.

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