Écrit par Charles Jonard
La fonctionnalité Package Registry de GitLab permet de publier différents types de packages et notamment des artefacts Maven.
Cet article détaille comment :
Déployer un artefact
Configuration
Afin de déployer un artefact Maven dans le package registry de GitLab, il est nécessaire de :
- spécifier l’url de déploiement des artefacts du projet. Pour cela, il suffit d’ajouter le bloc de code suivant dans le fichier
pom.xml
:
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
</snapshotRepository>
</distributionManagement>
⚠Les variables
${CI_API_V4_URL}
et${CI_PROJECT_ID}
ne doivent pas être remplacées, il s’agit de variables pré-définies. Elles seront évaluées lors de l’exécution de la pipeline.
💡Ce bloc de code peut être ajouté au sein d’un profil Maven (qui devra être activé durant la phase de déploiement).
Définir la configuration d’authentification au registry. Pour cela, un fichier ci_settings.xml
peut être créé à la racine du projet avec le contenu ci-dessous :
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<servers>
<server>
<id>gitlab-maven</id>
<configuration>
<httpHeaders>
<property>
<name>Job-Token</name>
<value>${CI_JOB_TOKEN}</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
- ⚠ La variable
${CI_JOB_TOKEN}
ne doit pas être remplacée, il s’agit d’une variable pré-définie. Elle sera évaluée lors de l’exécution de la pipeline.
Exécution
Une fois les points précédents traités, il est possible de lancer le déploiement avec la commande suivante au sein d’une pipeline :
mvn clean deploy -s ci_settings.xml
Consultation
Après le déploiement, les artefacts déployés peuvent être visualisés dans GitLab dans le menu Packages and registries
> Package Registry
Utiliser un artefact déployé
Pour utiliser un artefact Maven déployé sur GitLab au sein d’une projet, il est nécessaire de :
- s’assurer que le projet dispose des droits nécessaires. Il doit être ajouté à la liste des projets pouvant accéder à l’API du repository dans lequel l’artefact est déployé. Cet ajout peut être réalisé dans le menu
Settings
>CI/CD
, rubriqueToken Acces
Dans l’exemple, ci-dessous, le projet projet-client est autorisé à télécharger les artefacts du projet projet-java - déclarer le repository Maven de l’artefact en ajoutant le bloc de code suivant dans le fichier
pom.xml
: