Skip to main content

Enterprise Server 3.15 ist derzeit als Release Candidate verfügbar.

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.

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

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 Enterprise Server-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 die GITHUB_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 HOSTNAME durch den Hostnamen von Ihre GitHub Enterprise Server-Instance 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.

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.

Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:

<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 die Unterdomänenisolation für deine Instanz deaktiviert ist:

<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>

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.

  1. Bearbeite das distributionManagement-Element der Datei pom.xml in deinem Paketverzeichnis, und ersetze HOSTNAME durch den Hostnamen von Ihre GitHub Enterprise Server-Instance, 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:

    <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>
    
  2. 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.HOSTNAME/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.

  1. Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.

  2. Füge dem dependencies-Element der pom.xml-Datei deines Projekts die Paketabhängigkeiten hinzu, indem du com.example:test durch das Paket ersetzt.

    <dependencies>
     <dependency>
        <groupId>com.example</groupId>
        <artifactId>test</artifactId>
        <version>1.0.0-SNAPSHOT</version>
      </dependency>
    </dependencies>
    
  3. Installiere das Paket.

    mvn install
    

Weitere Informationsquellen