はじめに
株式会社ピー・アール・オーのアドベントカレンダー5日目です。
前回はiOS用のフレームワークをCocoaPodsに公開する手順を書きました、今回はAndroid用ライブラリをmavenに公開してみます。
今回はGitHubのpackages機能を利用してライブラリをリリースします。
事前準備
- Android Studioをインストールする
- GitHub上にAndroidライブラリ用のリポジトリを用意する
maven-publishプラグインを有効する
今回はAndroid Studioが提供するMaven Publish Pluginを利用してライブラリをリリースします。まずはライブラリモジュールのbuild.gradle
にmaven-publishを有効します。
plugins {
id 'maven-publish'
}
リリースするライブラリの情報を定義する
次は、同じライブラリモジュールのbuild.gradle
に下記のリリースするライブラリの情報を追加します。
下記のコードはBuild Variantがrelease
時のAARライブラリを作ってリリースします。
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'com.lxlgarnett.colorpicker'
artifactId = 'color-picker'
version = '1.0.0'
}
}
}
groupId: ユニークなID、今回はライブラリのパッケージ名を利用する
artifactId: 公開するライブラリ名
version: 公開するライブラリのバージョン
GitHubのmavenリポジトリを追加する
リリース情報を追加したら、次は公開するmavenリポジトリの定義を追加します。
afterEvaluateのpublishingに下記のコードを追加します。
repositories {
maven {
name = 'GitHubPackages'
url = uri("https://maven.pkg.github.com/lxlgarnett/color-picker-android")
}
}
GitHub用アクセストークンを発行する
GitHubトークン画面にアクセスし、新しいトークンを生成します。
発行したトークンに必ずwrite:packages
にチェックを入れてください。
GitHub認証情報を追加
次は発行したトークン情報をbuild.gradle
に追加します。
credentials {
username = [You GitHub Username]
password = [Generated GitHub Token]
}
※ セキュリティのため、発行したトークン情報はGitHubにコミットしちゃいけないため、ローカルの.properties
に保存したほうが良いです。
完成版のコード
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'com.lxlgarnett.colorpicker'
artifactId = 'color-picker'
version = '1.0.0'
}
}
repositories {
maven {
name = 'GitHubPackages'
url = uri("https://maven.pkg.github.com/lxlgarnett/color-picker-android")
credentials {
username = [Your GitHub Username]
password = [Generated GitHub Token]
}
}
}
}
}
ライブラリを公開する
最後はプロジェクトをsyncし、下記のコマンドでライブラリを公開します。
./gradlew publish
公開したライブラリを使ってみる
それでは、実際公開したライブラリはどう使うでしょう?
mavenリポジトリ情報を追加する
まずは利用するプロジェクト側のプロジェクト用のbuild.gradle
にGitHubのmavenリポジトリ情報を追加します。
allprojects {
repositories {
google()
mavenCentral()
maven {
name = 'ColorPickerGitHubPackages'
url = uri('https://maven.pkg.github.com/lxlgarnett/color-picker-android')
credentials {
username [Your GitHub Username]
password [Your GitHub Token]
}
}
}
}
※ GitHubのmavenリポジトリはPublicなリポジトリでも、認証情報が必要となります。
Dependency情報を追記する
次はアプリモジュール側のbuild.gradle
にライブラリのDependency情報を追加します。追加が終わった後、プロジェクトをsyncし、ビルドすればOKです。
implementation 'com.lxlgarnett.colorpicker:color-picker:1.0.0'