Bei GitHub Packages authentifizieren
GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.
Du benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.
Du kannst ein personal access token (classic) für die Authentifizierung bei GitHub Packages oder bei der GitHub-API verwenden. Wenn du ein personal access token (classic) erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen zu paketbezogenen Bereichen für ein personal access token (classic) findest du unter Informationen zu Berechtigungen für GitHub-Pakete.
Um dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:
GITHUB_TOKEN
, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.- Ein personal access token (classic) (diesem muss mindestens der Bereich
read:packages
zugeordnet sein), um Pakete zu installieren, die zu anderen privaten Repositorys gehören (auf dieGITHUB_TOKEN
nicht zugreifen kann)
Weitere Informationen zum GITHUB_TOKEN
, das in GitHub Actions-Workflows verwendet wird, findest du unter Automatische Tokenauthentifizierung.
Authentifizieren mit einem personal access token
Du musst ein personal access token (classic) mit den entsprechenden Bereichen verwenden, um Pakete in GitHub Packages zu veröffentlichen und zu installieren. Weitere Informationen findest du unter Einführung in GitHub-Pakete.
Du kannst dich bei der GitHub Packages mit Apache Maven authentifizieren, indem du die Datei ~/m2/settings.xml bearbeitest und dein personal access token (classic) einfügst. Erstelle eine neue ~/.m2/settings.xml-Datei, wenn keine vorhanden ist.
Füge im servers
-Tag ein untergeordnetes server
-Tag mit einer id
hinzu, und ersetze USERNAME durch deinen Benutzernamen auf GitHub sowie TOKEN durch dein personal access token.
Konfiguriere im Tag repositories
ein Repository, indem du id
des Repositorys der id
zuordnest, die du im Tag server
hinzugefügt hast. Dieses Tag enthält deine Anmeldeinformationen. Ersetze BESITZER durch den Namen des persönlichen Kontos oder die Organisation, in dessen bzw. deren Besitz sich das Repository befindet. Da Großbuchstaben nicht unterstützt werden, musst du für den oder die Repositorybesitzer*in Kleinbuchstaben verwenden, selbst wenn der Benutzer- oder Organisationsname auf GitHub Großbuchstaben enthält.
Wenn du mit mehreren Repositorys arbeiten möchtest, kannst du jedes Repository zu untergeordneten repository
-Elementen im Tag repositories
hinzufügen und die jeweilige id
den einzelnen Anmeldeinformationen im Tag servers
zuordnen.
GitHub Packages unterstützt SNAPSHOT
-Versionen von Apache Maven. Um das GitHub Packages-Repository zum Herunterladen von SNAPSHOT
-Artefakten zu verwenden, aktiviere SNAPSHOTS im POM des nutzenden Projekts oder in deiner ~/.m2/settings.xml-Datei.
<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>
Veröffentlichen eines Pakets
Standardmäßig veröffentlicht GitHub das Paket in ein vorhandenes Repository mit dem gleichen Namen wie das Paket. Beispielsweise veröffentlicht GitHub ein Paket mit dem Namen com.example:test
in einem Repository namens OWNER/test
.
Wenn du mehrere Pakete im gleichen Repository veröffentlichen möchtest, kannst du die Repository-URL im <distributionManagement>
-Element der Datei pom.xml einschließen. Basierend auf diesem Feld gleicht GitHub dem Repository. Du musst keine zusätzlichen Schritte durchführen, um mehrere Pakete im gleichen Repository zu veröffentlichen, da der Repositoryname auch Teil des distributionManagement
-Elements ist.
Weitere Informationen zum Erstellen eines Pakets findest du in der Dokumentation zu maven.apache.org.
-
Bearbeite das
distributionManagement
-Element der Datei pom.xml in deinem Paketverzeichnis, und ersetzeOWNER
durch den Namen des persönlichen Kontos oder der Organisation, in dessen bzw. deren Besitz sich das Repository befindet, undREPOSITORY
durch den Namen des Repositorys, das dein Projekt enthält.<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
Nachdem Du ein Paket veröffentlicht hast, kannst Du das Paket auf GitHub ansehen. Weitere Informationen findest du unter Pakete anzeigen.
Installieren eines Pakets
Um ein Apache Maven-Paket aus der GitHub Packages zu installieren, bearbeite die Datei pom.xml, damit das Paket als Abhängigkeit eingeschlossen wird. Wenn du Pakete aus einem beliebigen Repository für angegebene Repositorybesitzer*innen installieren möchtest, verwende eine Repository-URL wie https://maven.pkg.github.com/OWNER/*
. Weitere Informationen zum Verwenden einer pom.xml-Datei in deinem Projekt findest du in der Apache Maven-Dokumentation unter Einführung in das POM.
-
Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
-
Füge dem
dependencies
-Element der pom.xml-Datei deines Projekts die Paketabhängigkeiten hinzu, indem ducom.example:test
durch das Paket ersetzt.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
Installiere das Paket.
mvn install