Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

Apache Mavenレジストリの利用

GitHub Packages にパッケージを公開するよう Apache Mavenを設定し、GitHub Packages に保存されたパッケージを依存関係としてJavaプロジェクトで利用できます。

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。 GitHub Enterprise Server インスタンスのアップグレードについて詳しくは、「新しいリリースへのアップグレードについて」を参照してく� さい。また、現在のリリース バージョンからのアップグレード パスについては、アップグレード アシスタント を参照してく� さい。

注: サイト管理者はそれぞれのサポートされているパッケージの種類を有効化あるいは無効化できるので、このパッケージの種類はインスタンスで利用できないかもしれません。 詳細については、「エンタープライズ向けのパッケージ サポートの構成」を参照してく� さい。

GitHub Packages への認証を行う

パッケージを発行、インストール、および削除するには、アクセス トークンが必要です。

個人アクセス トークン (PAT) を使用し、GitHub Packages または GitHub Enterprise Server API の認証を受けることができます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PAT のパッケージ関連のスコープの詳細については、「GitHub パッケージのアクセス許可について」を参照してく� さい。

GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。

  • GITHUB_TOKEN では、ワークフロー リポジトリに関連付けられているパッケージを発行します。
  • packages:read 以上のスコープが設定された PAT では、(GITHUB_TOKEN ではアクセスできない) 他のプライベート リポジトリに関連付けられているパッケージがインストールされます。

GitHub Actions ワークフローで使用される GITHUB_TOKEN の詳細については、「ワークフローで認証する」を参照してく� さい。

個人アクセストークンでの認証

GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しくは、「GitHub Packages について」をご覧く� さい。

~/.m2/settings.xml ファイルを編集して個人アクセストークンを含めることで、Apache Maven でGitHub Packagesの認証を受けられます。 ~/.m2/settings.xml ファイルが存在しない� �合は新しく作成します。

servers タグでid のある子serverタグを追� し、USERNAME はご自分の GitHub ユーザー名と、TOKEN はご自分の個人アクセス トークンと置き換えます。

repositories タグで、リポジトリの id を、資� �情� �を含む server タグ追� した id にマッピングして、リポジトリを構成します。 HOSTNAME を のホスト名に置き換え、 OWNER をリポジトリを所有するユーザーまたは Organization の名前に置き換えます。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。

複数のリポジトリとやりとりする� �合は、各リポジトリを repositories タグ内の個別の repository の子に追� し、それぞれの idservers タグ内の資� �情� �にマッピングします。

GitHub Packages では Apache Maven の SNAPSHOT バージョンがサポートされています。 SNAPSHOT 成果物のダウンロードに GitHub Packages リポジトリを使用するには、それを使用するプロジェクトまたは ~/.m2/settings.xml ファイルの POM で SNAPSHOTS を有効にします。

インスタンスで Subdomain Isolation が有効になっている� �合:

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

インスタンスで Subdomain Isolation が無効になっている� �合:

<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はパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubは OWNER/test というリポジトリ内の com.example:test という名前のパッケージを公開します。

複数のパッケージを同じリポジトリに公開する� �合は、リポジトリの URL を pom.xml ファイルの <distributionManagement> 要� に含めることができます。 GitHub は、このこのフィールドを元にしてリポジトリを照合します。 リポジトリ名も distributionManagement 要� の一部なので、複数のパッケージを同じリポジトリに公開するための追� 手� �はありません。

パッケージの作成について詳しくは、maven.apache.org のドキュメントを参照してく� さい。

  1. パッケージ ディレクトリにある pom.xml ファイルの distributionManagement 要� を編集し、HOSTNAME を のホスト名に、OWNER をリポジトリを所有するユーザーまたは Organization のアカウント名に、REPOSITORY をプロジェクトを含むリポジトリ名で置き換えます。

    もしもインスタンスでSubdomain Isolationが有効化されているなら:

    <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

パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しくは、「パッケージの表示」をご覧く� さい。

パッケージのインストール

Apache Maven パッケージを GitHub Packages 空インストールするには、パッケージを依存関係として含めるように pom.xml ファイルを編集します。 複数のリポジトリからパッケージをインストールしたい� �合は、それぞれについて repository タグを追� します。 プロジェクトで pom.xml ファイルを使用する方法について詳しくは、Apache Maven ドキュメントの「POM の概要」を参照してく� さい。

  1. GitHub Packagesに認証を受けてく� さい。 詳細については、「GitHub Packages への認証」を参照してく� さい。

  2. パッケージの依存関係をプロジェクト pom.xml ファイルの dependencies 要� に追� し、com.example:test をご自分のパッケージに置き換えます。

    <dependencies>
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>test</artifactId>
        <version>1.0.0-SNAPSHOT</version>
      </dependency>
    </dependencies>
    
  3. パッケージをインストールします。

    $ mvn install

参考資料