注: GitHub Packages は、GitHub AE では現在ベータ段階です。
GitHub Packages への認証を行う
非公開パッケージ、内部パッケージ、公開パッケージを発行、インストール、削除するには、アクセス トークンが必要です。
personal access token を使って、GitHub Packages または GitHub AE API の認証を受けることができます。 personal access token を作成するときは、必要に応じてさまざまなスコープをトークンに割り当てることができます。 personal access token のパッケージ関連のスコープについて詳しくは、「GitHub パッケージのアクセス許可について」をご覧ください。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
では、ワークフロー リポジトリに関連付けられているパッケージを発行します。read:packages
以上のスコープが設定された personal access token では、他のプライベート リポジトリ (GITHUB_TOKEN
ではアクセスできない) に関連付けられているパッケージがインストールされます。
GitHub Actions ワークフローで使用される GITHUB_TOKEN
の詳細については、「ワークフローで認証する」を参照してください。
personal access token で認証を行う
GitHub Packages でパッケージを発行およびインストールするには、適切なスコープで personal access token を使う必要があります。 詳しくは、「GitHub Packages について」をご覧ください。
~/.m2/settings.xml ファイルを編集して personal access token を含めることで、Apache Maven で GitHub Packages の認証を受けられます。 ~/.m2/settings.xml ファイルが存在しない場合は新しく作成します。
servers
タグで id
のある子 server
タグを追加し、USERNAME はご自分の GitHub ユーザー名と、TOKEN はご自分の personal access token と置き換えます。
repositories
タグで、リポジトリの id
を、資格情報を含む server
タグ追加した id
にマッピングして、リポジトリを構成します。 HOSTNAME を your enterprise のホスト名に置き換え、 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.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>
パッケージの公開
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubは OWNER/test
というリポジトリ内の com.example:test
という名前のパッケージを公開します。
複数のパッケージを同じリポジトリに公開する場合は、リポジトリの URL を pom.xml ファイルの <distributionManagement>
要素に含めることができます。 GitHub は、このこのフィールドを元にしてリポジトリを照合します。 リポジトリ名も distributionManagement
要素の一部なので、複数のパッケージを同じリポジトリに公開するための追加手順はありません。
パッケージの作成について詳しくは、maven.apache.org のドキュメントを参照してください。
-
パッケージ ディレクトリにある pom.xml ファイルの
distributionManagement
要素を編集し、HOSTNAME を your enterprise のホスト名に、OWNER
をリポジトリを所有するユーザーまたは Organization のアカウント名に、REPOSITORY
をプロジェクトを含むリポジトリ名で置き換えます。<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.HOSTNAME/OWNER/REPOSITORY</url> </repository> </distributionManagement>
-
pom.xml ファイルの
plugins
要素で、checksum-maven-plugin プラグインを追加し、少なくとも SHA-256 チェックサムを送信するようにプラグインを構成します。<plugins> <plugin> <groupId>net.nicoulaj.maven.plugins</groupId> <artifactId>checksum-maven-plugin</artifactId> <version>1.9</version> <executions> <execution> <goals> <goal>artifacts</goal> </goals> </execution> </executions> <configuration> <algorithms> <algorithm>SHA-256</algorithm> </algorithms> </configuration> </plugin> </plugins>
-
Publish the package.
$ mvn deploy
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しくは、「パッケージの表示」をご覧ください。
パッケージのインストール
Apache Maven パッケージを GitHub Packages 空インストールするには、パッケージを依存関係として含めるように pom.xml ファイルを編集します。 複数のリポジトリからパッケージをインストールしたい場合は、それぞれについて repository
タグを追加します。 プロジェクトで 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>
-
pom.xml ファイルの
plugins
要素で、checksum-maven-plugin プラグインを追加し、少なくとも SHA-256 チェックサムを送信するようにプラグインを構成します。<plugins> <plugin> <groupId>net.nicoulaj.maven.plugins</groupId> <artifactId>checksum-maven-plugin</artifactId> <version>1.9</version> <executions> <execution> <goals> <goal>artifacts</goal> </goals> </execution> </executions> <configuration> <algorithms> <algorithm>SHA-256</algorithm> </algorithms> </configuration> </plugin> </plugins>
-
パッケージをインストールします。
$ mvn install