Artifact Registry est compatible avec les packages Java que vous compilez avec Maven et Gradle.
Présentation
Pour vous familiariser avec les packages Java dans Artifact Registry, vous pouvez consulter le guide de démarrage rapide.
Pour en savoir plus, consultez les informations suivantes :
- Créez un dépôt de packages Java pour vos packages.
- Découvrez comment créer des dépôts distants et virtuels.
- Découvrez comment utiliser des dépôts distants et virtuels dans cet exemple d'utilisation de dépôts.
- Accordez des autorisations au compte qui se connectera au dépôt. Les comptes de service pour les intégrations courantes avec Artifact Registry disposent d'autorisations par défaut pour les dépôts du même projet.
- Configurez vos outils :
- Configurez l'authentification pour Maven ou Gradle.
- 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.
- Configurez Cloud Build pour importer et télécharger des packages.
- Découvrez comment déployer dans des environnements d'exécution Google Cloud .
- Découvrir comment gérer les packages.
Versions d'instantanés et de versions Maven
Maven fait la distinction entre les versions snapshot et release de vos projets Maven.
Instantanés
Un instantané est une version préliminaire d'un projet Java. Le numéro de version d'un instantané inclut le suffixe -SNAPSHOT
dans votre modèle d'objet de projet (POM). Par exemple, ce paramètre du fichier pom.xml
est destiné à une version 1.0
d'un projet en cours de développement:
<version>1.0-SNAPSHOT</version>
Lorsque vous publiez un package à partir de ce projet, Maven 3 ajoute automatiquement un code temporel au numéro de version de l'instantané afin que chaque version d'instantané soit unique. Maven 2 prend en charge les versions d'instantanés non uniques pour écraser les instantanés existants dans un dépôt. Cette approche pose problème pour la reproductibilité des builds. C'est pourquoi Maven 3 n'est plus compatible avec les instantanés non uniques.
Les instantanés vous permettent de publier de manière itérée des versions mises à jour d'un package en version préliminaire sans incrémenter le numéro de version dans votre projet Maven chaque fois que vous publiez dans le dépôt. Lors du développement, d'autres projets ayant des dépendances sur le package peuvent ensuite obtenir la dernière image instantanée de la version 1.0
à partir du dépôt.
Pour en savoir plus sur la syntaxe et l'ordre de tri des numéros de version Maven, consultez la spécification de l'ordre des versions.
Versions
Lorsque vous êtes prêt à publier un package, vous supprimez le suffixe -SNAPSHOT
du numéro de version dans le fichier POM et mettez à jour tous les projets qui dépendent du package afin qu'ils utilisent la version de publication plutôt que la version instantanée.
Pour lister toutes les dépendances de l'instantané, vous pouvez filtrer l'arborescence des dépendances avec la commande suivante:
mvn dependency:tree -Dincludes=:::*-SNAPSHOT
Règle de version Artifact Registry
Lorsque vous créez un dépôt Maven dans Artifact Registry, vous pouvez spécifier une stratégie de version Maven:
- Aucun : stocke à la fois les packages d'instantanés et les packages de version. Il s'agit du paramètre par défaut.
- Instantané : stocke uniquement les packages d'instantanés.
- Release : les magasins ne publient que des packages.
Si vous choisissez la règle de version d'instantané, vous pouvez également spécifier si le dépôt autorise les versions d'instantanés non uniques qui écrasent les versions correspondantes dans le dépôt. Nous vous recommandons d'utiliser des versions uniques, car Maven 3 n'est pas compatible avec le modèle de version non unique.