ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Configuring Apache Maven for use with GitHub Package Registry

You can publish an Apache Maven package to GitHub パッケージレジストリ and use it as a dependency in a Java project.

GitHub パッケージレジストリ は現在、限定パブリックベータとして利用できます。ベータ期間中は、高価なワークフローやコンテンツに GitHub パッケージレジストリ を利用することは避けてください。詳細は「GitHub パッケージレジストリ について」を参照してください。

In this article

Authenticating to GitHub パッケージレジストリ

Apache Maven で GitHub パッケージレジストリ のパブリックパッケージを公開および削除するには、read:packageswrite:packages のスコープ付き個人アクセストークンを使う必要があります。 リポジトリがプライベートである場合、個人アクセストークンも repo のスコープを持っている必要があります。 詳細は「コマンドライン用の個人アクセストークンを作成する」を参照してください。

Configure Apache Maven to use your token when pushing new packages by editing your ~/.m2/settings.xml file, or creating one it if it doesn't exist. The file should look similar to the example below. Replace USERNAME with your GitHub username, TOKEN with your personal access token, and OWNER with the GitHub user or organization name that contains the repository you will be publishing the package to or installing packages from.

<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>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>github</id>
          <name>GitHub OWNER Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/OWNER</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>USERNAME</username>
      <password>TOKEN</password>
    </server>
  </servers>
</settings>

You can also use a GITHUB_TOKEN to publish and consume packages in the GitHub パッケージレジストリ in a GitHub Actions workflow without storing and managing a personal access token. For more information about GITHUB_TOKEN, see "GITHUB_TOKEN secret."

You can use a script to inject your GITHUB_TOKEN into the appropriate configuration file for GitHub パッケージレジストリ. Add GitHub パッケージレジストリ as an alernative registry or repository in the configuration file for the package client, as well as your GitHub username and a personal access token with the appropriate scopes. The exact steps for creating a configuration file vary by package type.

Publishing a package

プッシュすると、デフォルトではパッケージと同じ名前を持つリポジトリにパッケージが作成されます。 たとえば、com.example.test という名前のパッケージは、OWNER/test という GitHub パッケージレジストリ リポジトリに公開されます。

If you would like to publish multiple packages to the same repository, you can include the URL to the GitHub パッケージレジストリ repository in the <scm> section of pom.xml. GitHub パッケージレジストリ will match the repository based on that field.

For more information on creating your package, see the maven.apache.org documentation.

Since the repository name is part of the distributionManagement section, there are no additional steps to publish multiple packages to the same repository.

  1. Edit the pom.xml file located in your package directory. It should look similar to the example below. Replace OWNER in the <url> with the GitHub パッケージレジストリ user or organization name that contains the repository you will be publishing the package to or installing packages from. Replace REPOSITORY with the name of the repository:

    <distributionManagement>
       <repository>
         <id>github</id>
         <name>GitHub OWNER Apache Maven Packages</name>
         <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
       </repository>
    </distributionManagement>
  2. After you've created your package and are ready to publish it to your GitHub パッケージレジストリ user or organization, run:

    $ mvn deploy
  3. パッケージには、以下の URL からアクセスできます。OWNER をあなたの GitHub ユーザもしくは Organization 名に、REPOSITORY をリポジトリ名に置き換えてください。

https://github.com/OWNER/REPOSITORY/packages

パッケージレジストリイベントを受信する

パッケージが 'published' あるいは 'updated' になったときに、webhook イベントを受信することができます。詳細は GitHub 開発者ドキュメンテーション の RegistryPackageEvent を参照してください。

Installing a package

  1. Set up Apache Maven to authenticate to GitHub パッケージレジストリ by editing your ~/.m2/settings.xml. For more information, see "Authenticating to GitHub パッケージレジストリ".

  2. Add the package dependencies to your pom.xml. For example this dependencies node of a pom.xml uses the com.example.test package:

    <dependencies>
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>test</artifactId>
        <version>1.0.0</version>
      </dependency>
    </dependencies>
  3. Install the package.

    $ mvn install

For more information on using a pom.xml in your project, see "Introduction to the POM" in the Apache Maven documentation.

Deleting a package

To avoid breaking projects that may depend on your packages, GitHub パッケージレジストリ does not support deleting published versions of a package or an entire published package for public repositories. 法的な理由やGDPR標準への準拠といった特別な状況下では、GitHub Supportを通じてパッケージの削除をリクエストできます。 GitHub Supportへの連絡には連絡フォームを使い、タイトル行を「GitHub パッケージレジストリ」としてください。

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in GitHub 開発者ドキュメンテーション.

Further reading

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください