Cette page décrit l'ajout, l'affichage et la suppression de packages Java.
Si vous souhaitez utiliser sbt comme outil de compilation pour Scala et Java au lieu d'utiliser Maven ou Gradle, un plug-in sbt créé par la communauté est disponible. Cette documentation ne décrit pas la configuration ni l'utilisation des clients Scala.
Avant de commencer
- Si le dépôt cible n'existe pas, créez un dépôt.
- Vérifiez que vous disposez des autorisations requises pour le dépôt.
- Vérifiez que vous avez configuré l'authentification. Si vous utilisez un jeton d'accès, veillez à l'actualiser avant de vous connecter au dépôt.
- (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour gérer les packages, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur le dépôt:
-
Affichez les packages ou les fichiers dans les packages :
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Téléchargez ou installez des packages :
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Ajoutez des packages à un dépôt : Artifact Registry Writer (
roles/artifactregistry.writer
) -
Supprimez les packages :
Administrateur de dépôt Artifact Registry (
roles/artifactregistry.repoAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Ajouter des packages
Modes du dépôt:standard
Pour ajouter des packages au dépôt :
Maven
Utilisez mvn deploy
et mvn release
pour ajouter des packages au dépôt.
Pour déployer un projet Maven qui référence un parent, le projet doit inclure le fournisseur de wagon Artifact Registry dans un fichier d'extensions de base, comme décrit dans les instructions d'authentification.
Utilisez mvn deploy:deploy-file
pour importer des artefacts compilés en dehors de Maven.
Par exemple, cet exemple de commande déploie example/external.jar
et son fichier de projet example/pom.xml
dans le dépôt us-central1-maven.pkg.dev/my-project/my-repo
.
mvn deploy:deploy-file \
-Durl=artifactregistry://us-central1-maven.pkg.dev/my-project/my-repo \
-DpomFile=example/pom.xml -Dfile=example/external.jar
Pour configurer l'intégration avec Cloud Build, consultez la page Intégrer à Cloud Build.
Gradle
Pour réussir la publication dans le dépôt, votre fichier build.gradle
doit inclure une section publications définissant les fichiers à importer.
Utilisez la commande gradle publish
pour importer un package dans le dépôt.
Afficher des packages et des versions
Modes de dépôt:standard, distant
Pour afficher les packages et les versions de package à l'aide de la console Google Cloud ou de gcloud
:
Console
Ouvrez la page Dépôts dans la console Google Cloud.
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher les versions correspondantes.
gcloud
Pour répertorier les packages d'un dépôt, exécutez la commande suivante :
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Où
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
- LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
Pour afficher les versions d'un package, exécutez la commande suivante :
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Où :
- PACKAGE est l'ID du package ou l'identifiant complet du package.
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
- LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
Pour les dépôts distants, la liste renvoyée doit inclure toutes les dépendances directes et transitives.
Répertorier les fichiers
Modes de dépôt:standard, distant
Vous pouvez répertorier les fichiers d'un dépôt, des fichiers de toutes les versions d'un package spécifié ou des fichiers d'une version spécifique d'un package.
Pour toutes les commandes suivantes, vous pouvez définir un nombre maximal de fichiers à renvoyer en ajoutant l'option --limit
à la commande.
Pour répertorier tous les fichiers du projet, du dépôt et de l'emplacement par défaut lorsque les valeurs par défaut sont configurées, procédez comme suit:
gcloud artifacts files list
Pour répertorier les fichiers d'un projet, d'un dépôt et d'un emplacement spécifié, exécutez la commande suivante:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Pour répertorier les fichiers de toutes les versions d'un package spécifique:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Pour répertorier les fichiers d'une version de package spécifique:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Remplacez les valeurs suivantes :
- LOCATION est l'emplacement régional ou multirégional du dépôt.
- PROJECT est l'ID de votre projet Google Cloud.
Si l'ID du projet contient le signe deux-points (
:
), consultez la section Projets à l'échelle du domaine. - REPOSITORY est le nom du dépôt où l'image est stockée.
- PACKAGE est le nom du package.
- VERSION est la version du package.
Examples
Examinez les informations de package suivantes:
- Projet :
my-project
- Dépôt:
my-repo
- Emplacement du dépôt :
us-central1
- Colis:
my-app
La commande suivante répertorie tous les fichiers du dépôt my-repo
à l'emplacement us-central1
dans le projet par défaut:
gcloud artifacts files list \
--location=us-central1 \
--repository=my-repo
La commande suivante répertorie les fichiers de la version 1.0
du package.
gcloud artifacts files list \
--project=my-project \
--location=us-central1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Télécharger des packages
Modes de dépôt:standard, distant, virtuel
Pour télécharger un artefact dans le cadre de votre compilation, vous devez le déclarer comme une dépendance.
Maven
Déclarez les packages que vous souhaitez télécharger dans le fichier de projet
pom.xml
. L'exemple suivant déclare la version 1.0 du packageartifact
en tant que dépendance.<dependencies> <dependency> <groupId>group</groupId> <artifactId>artifact</artifactId> <version>1.0</version> </dependency> </dependencies>
Pour en savoir plus sur les dépendances Maven, consultez l'introduction aux dépendances de Maven et la documentation de référence sur les dépendances.
Créez le projet Java.
mvn compile
Gradle
Déclarez les packages que vous souhaitez télécharger dans le fichier de projet
build.gradle
. L'exemple suivant déclare la version 1.0 du packageartifact
en tant que dépendance de compilation externe.Pour en savoir plus sur les dépendances Gradle, consultez la documentation Gradle.
dependencies { compile group: 'group', name: 'artifact', version: '1.0' }
Créez le projet Java.
gradle build
Pour les dépôts standards, vous téléchargez un package directement à partir du dépôt.
Pour un dépôt distant, vous téléchargez une copie mise en cache du package et de ses dépendances. S'il n'existe pas de copie mise en cache, le dépôt distant télécharge le package à partir de la source en amont et le met en cache avant de vous le diffuser. Pour vérifier que le dépôt distant a récupéré les packages à partir de la source en amont, affichez la liste des packages qu'il contient.
Pour un dépôt virtuel, Artifact Registry recherche le package demandé dans les dépôts en amont.
- Les dépôts distants en amont téléchargent et mettent en cache le package demandé s'il n'existe pas de copie mise en cache. Les référentiels virtuels ne diffusent que les packages demandés, ils ne les stockent pas.
- Si vous demandez une version disponible dans plusieurs dépôts en amont, Artifact Registry choisit un dépôt en amont à utiliser en fonction des paramètres de priorité configurés pour le dépôt virtuel.
Prenons l'exemple d'un dépôt virtuel avec les paramètres de priorité suivants pour les dépôts en amont:
main-repo
: priorité définie sur100
secondary-repo1
: priorité définie sur80
.secondary-repo2
: priorité définie sur80
.test-repo
: priorité définie sur20
.
main-repo
a la valeur ayant la priorité la plus élevée. Le dépôt virtuel le recherche donc toujours en premier.
La priorité de secondary-repo1
et de secondary-repo2
est définie sur 80
. Si un package demandé n'est pas disponible dans main-repo
, Artifact Registry recherche ensuite ces dépôts. Étant donné qu'ils ont tous les deux la même valeur de priorité, Artifact Registry peut choisir de diffuser un package à partir de l'un ou l'autre des dépôts si la version est disponible dans les deux.
test-repo
a la priorité la plus faible et diffuse un artefact stocké si aucun des autres dépôts en amont ne l'a.
Supprimer des packages et des versions
Modes de dépôt:standard, distant
Vous pouvez supprimer un package et toutes ses versions ou supprimer une version spécifique.
- La suppression d'un package est irréversible.
- Pour les dépôts distants, seule la copie mise en cache du package est supprimée. La source en amont n'est pas affectée. Si vous supprimez un package mis en cache, Artifact Registry le téléchargera et le mettra à nouveau en cache la prochaine fois que le dépôt recevra une requête pour la même version de package.
Avant de supprimer un package ou une version de package, vérifiez que vous avez communiqué ou résolu toute dépendance importante associée.
Pour supprimer un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud.
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Sélectionnez le package que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande suivante :
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Où
- PACKAGE est le nom du package du dépôt.
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
- LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
--async
renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.
Pour supprimer des versions d'un package, procédez comme suit :
Console
Ouvrez la page Dépôts dans la console Google Cloud.
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher les versions correspondantes.
Sélectionnez les versions que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande suivante :
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Où
- PACKAGE est le nom du package du dépôt.
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
- LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
--async
renvoie immédiatement, sans attendre la fin de l'opération en cours.
Étapes suivantes
- En savoir plus sur la gestion des packages Node.js
- En savoir plus sur la gestion des packages Python
- En savoir plus sur la gestion des images de conteneurs