Arbeiten mit der Apache Maven-Registrierung
Du kannst Apache Maven für die Veröffentlichung von Paketen auf GitHub Packages und für die Nutzung von auf GitHub Packages gespeicherten Paketen als Abhängigkeiten in einem Java-Projekt konfigurieren.
Apache Maven-Registrierung
Hinweis: Dieser Pakettyp ist möglicherweise nicht für Ihre Instanz verfügbar, weil Websiteadministratoren die einzelnen unterstützten Pakettypen aktivieren oder deaktivieren können. Weitere Informationen findest du unter Konfigurieren der Paketökosystemunterstützung für dein Unternehmen.
Bei GitHub Packages authentifizieren
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 für die Authentifizierung bei GitHub Packages oder bei der GitHub Enterprise Server-API verwenden. Wenn du ein personal access token erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen über paketbezogene Bereiche für ein personal access token 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 (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 Authentifizierung in einem Workflow. Authentifizieren mit einem personal access token
Du musst ein personal access token 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 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 HOSTNAME durch den Hostnamen von deine GitHub Enterprise Server-Instanz und 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.
<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.HOSTNAME/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>
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.
<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>HOSTNAME/_registry/maven/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>
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.
Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:
Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:
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.<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.HOSTNAME/OWNER/REPOSITORY</url> </repository> </distributionManagement>
If your instance has subdomain isolation disabled:
<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://HOSTNAME/_registry/maven/OWNER/REPOSITORY</url> </repository> </distributionManagement>
-
Publish the package.
$ mvn deploy
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 ersetze HOSTNAME durch den Hostnamen von deine GitHub Enterprise Server-Instanz, OWNER
durch den Namen des persönlichen Kontos oder der Organisation, in dessen bzw. deren Besitz sich das Repository befindet, und REPOSITORY
durch den Namen des Repositorys, das dein Projekt enthält.
Wenn die Unterdomänenisolation für deine Instanz aktiviert ist: 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.
2. Wenn du Pakete aus mehreren Repositorys installieren möchtest, füge jeweils ein repository
-Tag hinzu.
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>test</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
Weitere Informationen zum Verwenden einer pom.xml-Datei in deinem Projekt findest du in der Apache Maven-Dokumentation unter Einführung in das POM. 3. 1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
$ mvn install
Füge dem dependencies
-Element der pom.xml-Datei deines Projekts die Paketabhängigkeiten hinzu, indem du com.example:test
durch das Paket ersetzt.
- Installiere das Paket.