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

GitHub パッケージレジストリで利用するために Apache Maven を設定する

Apache Maven パッケージを GitHub パッケージレジストリ に公開して、Java プロジェクトで依存関係として利用できます。

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

本記事の内容:

GitHub パッケージレジストリ への認証を行う

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

You can also use a GITHUB_TOKEN to push packages to the GitHub パッケージレジストリ in a GitHub Actions workflow. For more information, see "`GITHUB_TOKEN secret."

新しいパッケージをプッシュする場合には、~/.m2/settings.xml ファイルを編集するか、このファイルがない場合は作成して、Apache Maven がトークンを使用するよう設定します。 ファイルは以下の例のようになっているはずです。 USERNAME を、パッケージを公開したり、パッケージをそこからインストールしたりするリポジトリを含んだ GitHub ユーザ名に、TOKEN を個人用アクセストークンに、そして OWNER を、GitHub ユーザまたは Organization 名に置き換えてください。

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

パッケージを公開する

プッシュすると、デフォルトではパッケージと同じ名前を持つリポジトリにパッケージが作成されます。 たとえば、com.example.test という名前のパッケージは、OWNER/test という GitHub パッケージレジストリ リポジトリに公開されます。 GitHub パッケージレジストリ リリースおよび関連する Git タグが、パッケージのバージョンに対して存在していない場合は、それが作成されます。

複数のパッケージを同じリポジトリに公開したい場合は、GitHub パッケージレジストリリポジトリの pom.xml にある <scm> セクションに、URL を記述できます。 GitHub パッケージレジストリ このフィールドを元にしてリポジトリを照合します。

パッケージの作成に関する詳しい情報については、maven.apache.org ドキュメンテーションを参照してください。

リポジトリ名は distributionManagement セクションの一部なので、複数のパッケージを同じリポジトリに公開するための追加手順はありません。

  1. パッケージディレクトリにある pom.xml ファイルを編集します。 ファイルは以下のようになっているはずです。 <url>OWNER を、パッケージを公開したり、パッケージをそこからインストールしたりするリポジトリを含んだ GitHub パッケージレジストリ ユーザまたは Organization に置き換えてください。 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. パッケージを作成し、GitHub パッケージレジストリ ユーザまたは Organization に公開する準備ができたら、以下を実行します:

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

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

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

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

パッケージをインストールする

  1. ~/.m2/settings.xml を編集して、Apache Maven が GitHub パッケージレジストリ を認証するよう設定してください。 詳細は「GitHub パッケージレジストリ への認証を行う」を参照してください。

  2. パッケージ依存関係を pom.xml に追加します。 たとえば、以下の例では pom.xmldependenciesノードが com.example.test パッケージを使用しています:

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

    $ mvn install

プロジェクトにおける pom.xml の使用に関する詳細は、Apache Maven ドキュメンテーションの「POM 入門」を参照してください。

パッケージを削除する

あなたのパッケージに依存しているかもしれないプロジェクトを壊すことがないよう、GitHub パッケージレジストリはパッケージの削除や、パッケージのバージョンの削除をサポートしていません。法的な理由やGDPR標準といった特別な状況下では、GitHub Supportを通じてパッケージの削除をリクエストできます。連絡フォームを使って「GitHub パッケージレジストリ」というタイトル行でGitHub Supportに連絡してください。

担当者にお尋ねください

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

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