🐡

GitHub packages にライブラリをアップロードする

2023/07/05に公開

手順

Personal access tokens の設定

  • GitHub の Settings > Developer Settings の Personal access tokens より write:packages にチェックが付いているか確認する

~/.m2/settings.xml の設定

$ touch ~/.m2/settings.xml

$ vi ~/.m2/settings.xml
<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">
  <servers>
    <server>
      <id>github</id>
      <username>{GitHub ユーザ}</username>
      <password>{GitHub アクセストークン}</password>
    </server>
  </servers>

  <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/{GitHub ユーザ}/*</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>
</settings>

pom.xml の作成

アップロード対象の jar と同一ディレクトリに pom.xml を作成する

$ touch pom.xml

$ vi pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>example</groupId>
    <artifactId>example</artifactId>
    <version>1.2.3</version>

    <distributionManagement>
        <repository>
            <id>github</id>
            <name>GitHub simply-app Apache Maven Packages</name>
            <url>https://maven.pkg.github.com/hoge/example</url>
        </repository>
    </distributionManagement>
</project>

deploy する

$ mvn deploy

# maven がインストールされてない場合
$ brew update && brew install maven

GitHub の packages にアップロードされているか確認する

Discussion