Authentification auprès de GitHub Packages
Vous avez besoin d’un jeton d’accès pour publier, installer et supprimer des packages.
Vous pouvez utiliser un jeton d’accès personnel (PAT) pour vous authentifier sur GitHub Packages ou l’API GitHub. Quand vous créez un jeton d’accès personnel, vous pouvez l’attribuer à différentes étendues en fonction de vos besoins. Pour plus d’informations sur les étendues liées aux packages pour un jeton PAT, consultez « À propos des autorisations de GitHub Packages ».
Pour vous authentifier sur un registre GitHub Packages dans un workflow GitHub Actions, vous pouvez utiliser :
GITHUB_TOKENpour publier des packages associés au dépôt du workflow.- Un PAT avec au moins l’étendue
packages:readpour installer des packages associés à d’autres dépôts privés (auxquelsGITHUB_TOKENne peut pas accéder).
Pour plus d’informations sur le GITHUB_TOKEN utilisé dans les workflows GitHub Actions, consultez « Authentification dans un workflow ».
Authentification avec un jeton d’accès personnel
Vous devez utiliser un jeton d’accès personnel avec les étendues appropriées pour publier et installer des packages dans GitHub Packages. Pour plus d’informations, consultez « À propos de GitHub Packages ».
Vous pouvez vous authentifier auprès de GitHub Packages avec Apache Maven en modifiant votre fichier ~/.m2/settings.xml pour y inclure votre jeton d’accès personnel. Créez un fichier ~/.m2/settings.xml s’il n’existe pas encore.
Dans la balise servers, ajoutez une balise server enfant avec un id, en remplaçant USERNAME par vos nom d’utilisateur GitHub et TOKEN par votre jeton d’accès personnel.
Dans la balise repositories, configurez un dépôt en mappant l’id du dépôt à l’id que vous avez ajouté dans la balise server contenant vos informations d’identification. Remplacez OWNER par le nom de l’utilisateur ou du compte d’organisation qui est propriétaire du dépôt. Étant donné que les lettres majuscules ne sont pas prises en charge, vous devez utiliser des lettres minuscules pour le propriétaire du dépôt, même si le nom d’utilisateur ou d’organisation GitHub contient des lettres majuscules.
Si vous voulez interagir avec plusieurs dépôts, vous pouvez ajouter chaque dépôt à des enfants repository distincts dans la balise repositories, en mappant l’id de chacun des dépôts aux informations d’identification dans la balise servers.
GitHub Packages prend en charge les versions SNAPSHOT d’Apache Maven. Pour utiliser le dépôt GitHub Packages afin de télécharger les artefacts SNAPSHOT, activez SNAPSHOTS dans le POM du projet consommateur ou de votre fichier ~/.m2/settings.xml.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Publication d’un package
Par défaut, GitHub publie le package dans un dépôt existant portant le même nom que le package. Par exemple, GitHub va publier un package nommé com.example:test dans un dépôt appelé OWNER/test.
Si vous souhaitez publier plusieurs packages sur le même dépôt, vous pouvez inclure l’URL du dépôt dans l’élément <distributionManagement> du fichier pom.xml. GitHub va établir la correspondance avec le dépôt en fonction de ce champ. Comme le nom du dépôt fait également partie de l’élément distributionManagement, il n’y a pas d’autre étape pour publier plusieurs packages sur le même dépôt.
Pour plus d’informations sur la création d’un package, consultez la documentation maven.apache.org.
-
Modifiez l’élément
distributionManagementdu fichier pom.xml qui se trouve dans votre répertoire de packages, en remplaçantOWNERpar le nom de l’utilisateur ou du compte d’organisation propriétaire du dépôt etREPOSITORYpar le nom du dépôt contenant votre projet.<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url> </repository> </distributionManagement> -
Publish the package.
$ mvn deploy
Après avoir publié un package, vous pouvez l’afficher sur GitHub. Pour plus d’informations, consultez « Affichage de packages ».
Installation d’un package
Pour installer un package Apache Maven à partir de GitHub Packages, modifiez le fichier pom.xml pour y inclure le package en tant que dépendance. Si vous voulez installer des packages à partir de plusieurs dépôts, ajoutez une balise repository pour chacun d’eux. Pour plus d’informations sur l’utilisation d’un fichier pom.xml dans votre projet, consultez « Présentation du POM » dans la documentation Apache Maven.
-
Authentifiez-vous sur GitHub Packages. Pour plus d’informations, consultez « Authentification auprès de GitHub Packages ».
-
Ajoutez les dépendances de package à l’élément
dependenciesdu fichier pom.xml de votre projet, en remplaçantcom.example:testpar votre package.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> -
Installez le package.
$ mvn install