デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
というリポジトリ内のcom.example:test
という名前のパッケージを公開します。
GitHub Packages への認証を行う
GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。
To authenticate using a GitHub Actionsのワークフロー:
- For package registries (
PACKAGE-REGISTRY.pkg.github.com
), you can use aGITHUB_TOKEN
. - For the container registry (
ghcr.io/OWNER/IMAGE-NAME
), you must use a personal access token.
個人アクセストークンでの認証
GitHub Packages内でパッケージを公開及びインストールするためには、適切なスコープで個人アクセストークンを使わなければなりません。 詳しい情報については「GitHub Packagesについて」を参照してください。
Gradle GroovyもしくはKotlin DSLを使って、GradleでGitHub Packagesに認証を受けることができます。それには、build.gradleファイル(Gradle Groovy)もしくはbuild.gradle.ktsファイル(Kotlin DSL)ファイルを編集して、個人アクセストークンを含めます。 リポジトリ中の単一のパッケージもしくは複数パッケージを認識するようにGradle Groovy及びKotlin DSLを設定することもできます。
USERNAMEをGitHubのユーザ名で、TOKENを個人アクセストークンで、REPOSITORYを公開したいパッケージを含むリポジトリの名前で、OWNERをリポジトリを所有するGitHubのユーザもしくはOrganizationアカウント名で置き換えてください。 Because uppercase letters aren't supported, you must use lowercase letters for the repository owner even if the GitHub user or organization name contains uppercase letters.
Note: GitHub PackagesはApache MavenのSNAPSHOT
バージョンをサポートしています。 このタイプの成果物のダウンロードのためにリポジトリを使うには、~/.m2/settings.xmlファイル中でSNAPSHOTSを有効化しなければなりません。 例として「GitHub Packagesで使用するためのApache Mavenの設定」を参照してください。
リポジトリ中の単一のパッケージのためにGradle Groovyを使う例
plugins {
id("maven-publish")
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
同じリポジトリ中の複数のパッケージのためにGradle Groovyを使う例
plugins {
id("maven-publish") apply false
}
subprojects {
apply plugin: "maven-publish"
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
}
同じリポジトリ中の単一パッケージのためにKotlin DSLを使う例
plugins {
`maven-publish`
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
publications {
register("gpr") {
from(components["java"])
}
}
}
同じリポジトリ中の複数パッケージのためにKotlin DSLを使う例
plugins {
`maven-publish` apply false
}
subprojects {
apply(plugin = "maven-publish")
configure {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
publications {
register("gpr") {
from(components["java"])
}
}
}
}
GITHUB_TOKEN
での認証
GitHub Actionsワークフローを使っているなら、GITHUB_TOKEN
を使い、個人アクセストークンを保存したり管理したりする必要なくGitHub Packages内のパッケージの公開や利用ができます。 詳しい情報については「GITHUB_TOKEN
での認証」を参照してください。
Mavenで GITHUB_TOKEN
を使用する方法の詳細については、「MavenでJavaパッケージを公開 」を参照してください。
パッケージを公開する
デフォルトでは、GitHubはパッケージはそのままの名前で既存のリポジトリに公開されます。 たとえば、GitHubはOWNER/test
GitHub Packagesリポジトリ内のcom.example.test
という名前のパッケージを公開します。
パッケージを公開した後は、GitHub上でそのパッケージを見ることができます。 詳しい情報については「パッケージの表示」を参照してください。
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
パッケージを作成した後、そのパッケージを公開できます。
$ gradle publish
パッケージをインストールする
プロジェクトの依存関係としてパッケージを追加することで、パッケージをインストールできます。 詳しい情報については、Gradleのドキュメンテーションの 「 Declaring dependencies」を参照してください。
-
GitHub Packagesに認証を受けてください。 詳しい情報については「GitHub Packagesへの認証を行う」を参照してください。
-
build.gradleファイル(Gradle Groovy)もしくはbuild.gradle.ktsファイル(Kotlin DSL)にパッケージの依存関係を追加してください。
Example using Gradle Groovy:
dependencies { implementation 'com.example:package' }
Kotlin DSLの例:
dependencies { implementation("com.example:package") }
-
build.gradleファイル(Gradle Groovy)もしくはbuild.gradle.ktsファイル(Kotlin DSL)にmavenプラグインを追加してください。
Example using Gradle Groovy:
plugins { id 'maven' }
Kotlin DSLの例:
plugins { `maven` }
-
パッケージをインストールします。
$ gradle install