GitHub Packages への認証を行う
Note
GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。
非公開パッケージ、内部パッケージ、公開パッケージを発行、インストール、削除するには、アクセス トークンが必要です。
personal access token (classic) を使って、GitHub Packages または GitHub API の認証を受けることができます。 personal access token (classic) を作成するときは、必要に応じてさまざまなスコープをトークンに割り当てることができます。 personal access token (classic) のパッケージ関連のスコープの詳細については、「GitHub Packagesの権限について」を参照してください。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
では、ワークフロー リポジトリに関連付けられているパッケージを発行します。read:packages
以上のスコープが設定された personal access token (classic) では、他のプライベート リポジトリ (GITHUB_TOKEN
ではアクセスできない) に関連付けられているパッケージがインストールされます。
GitHub Actions ワークフローで使われる GITHUB_TOKEN
の詳細については、「自動トークン認証」を参照してください。
personal access token
で認証を行う
GitHub Packages でパッケージを発行およびインストールするには、適切なスコープで personal access token (classic) を使う必要があります。 詳しくは、「GitHub Packages の概要」を参照してください。
~/.m2/settings.xml ファイルを編集して personal access token (classic) を含めることで、Apache Maven で GitHub Packages の認証を受けられます。 ~/.m2/settings.xml ファイルが存在しない場合は新しく作成します。
servers
タグで id
のある子 server
タグを追加し、USERNAME はご自分の GitHub ユーザー名と、TOKEN はご自分の personal access token
と置き換えます。
repositories
タグで、リポジトリの id
を、資格情報を含む server
タグ追加した id
にマッピングして、リポジトリを構成します。 OWNER はリポジトリを所有している個人アカウントまたは Organization の名前に置き換えます。 大文字はサポートされていないため、仮にGitHubのユーザあるいはOrganization名が大文字を含んでいても、リポジトリオーナーには小文字を使わなければなりません。
複数のリポジトリとやりとりする場合は、各リポジトリを repositories
タグ内の個別の repository
の子に追加し、それぞれの id
を servers
タグ内の資格情報にマッピングします。
GitHub Packages では Apache Maven の SNAPSHOT
バージョンがサポートされています。 SNAPSHOT
成果物のダウンロードに GitHub Packages リポジトリを使用するには、それを使用するプロジェクトまたは ~/.m2/settings.xml ファイルの POM で SNAPSHOTS を有効にします。
<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>
パッケージの公開
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubは OWNER/test
というリポジトリ内の com.example:test
という名前のパッケージを公開します。
複数のパッケージを同じリポジトリに公開する場合は、リポジトリの URL を pom.xml ファイルの <distributionManagement>
要素に含めることができます。 GitHub は、このこのフィールドを元にしてリポジトリを照合します。 リポジトリ名も distributionManagement
要素の一部なので、複数のパッケージを同じリポジトリに公開するための追加手順はありません。
パッケージの作成について詳しくは、maven.apache.org のドキュメントを参照してください。
-
パッケージ ディレクトリにある pom.xml ファイルの
distributionManagement
要素を編集し、OWNER
はリポジトリを所有している個人アカウントまたは組織の名前に、REPOSITORY
はプロジェクトを含むリポジトリ名に置き換えます。<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
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しくは、「パッケージの表示」を参照してください。
パッケージのインストール
Apache Maven パッケージを GitHub Packages 空インストールするには、パッケージを依存関係として含めるように pom.xml ファイルを編集します。 指定したリポジトリ所有者の任意のリポジトリからパッケージをインストールする場合は、https://maven.pkg.github.com/OWNER/*
のようなリポジトリ URL を使います。 プロジェクトで pom.xml ファイルを使用する方法について詳しくは、Apache Maven ドキュメントの「POM の概要」を参照してください。
-
GitHub Packagesに認証を受けてください。 詳細については、「GitHub Packages への認証」を参照してください。
-
パッケージの依存関係をプロジェクト pom.xml ファイルの
dependencies
要素に追加し、com.example:test
をご自分のパッケージに置き換えます。<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
パッケージをインストールします。
mvn install