Posted at

GitHubにMavenリポジトリを構築してAndroidのAARライブラリを共有する手順


概要

Android Studioを使って、GitHubに簡易的にMavenリポジトリを構築し、AARライブラリを公開するまでの手順について書きます。自分の備忘録を兼ねています。

Android開発で、自作ライブラリをアプリ共通で使いたいけど、セントラルリポジトリ使う程でもないし、そもそもやり方知らないし、調べたら面倒臭そうだし、という感じの経緯でやった内容です。とにかく最短で手っ取り早く構築するだけの内容です。

キーやトークンの設定とか何も要らないです。ただ、GitHubリポジトリとAndroidプロジェクトがあって、GitHubにプッシュできるようになっていれば問題ないはずです。

サンプルは、自作ライブラリの「Prefs」を公開した際の内容になっています。各種ファイルも同プロジェクトに含まれています。また、開発環境がWindowsだったので、その辺に依存した部分はあるかもしれない点はご了承ください。(作業自体は他OSでもできるかと思います)


環境


  • Android Studio

  • 共有したいAARモジュールが含まれるAndroidプロジェクト


手順


設定変更

リポジトリの設定を記述した以下のMavenファイルを作成し、AARモジュールのフォルダに配置します。ファイル名は何でもいいですが、ここでは、maven.gradleとします。

出力先フォルダ("repository")や、version, groupId, artifactIdはアプリに応じて適宜変更します。


maven.gradle

def versionName = "0.0.1"

def repo = new File(rootDir, "repository")

apply plugin: 'maven'

uploadArchives {
repositories {
mavenDeployer {
repository url: "file://${repo.absolutePath}"
pom.version = "${versionName}"
pom.groupId = 'com.wa2c.android'
pom.artifactId = 'prefs'
}
}
}


AARモジュールのbuild.gradleに以下の変更を加えます。


build.gradle(Module)

apply from: 'maven.gradle'


バージョンを一致させるために、同ファイルにあるバージョンを以下のように変更します。


build.gradle(Module)

versionName "{$versionName}"


以下のWindowsバッチファイルを作成し、プロジェクトフォルダに配置します。Windows以外のOSの場合は適宜読み替えてください。


uploadArchives.bat

cd /d %~dp0

.\gradlew uploadArchives


リポジトリの作成

バッチファイルを実行します。これにより、gradlewコマンドをuploadArchivesオプションで実行されます。プロジェクトフォルダにrepositoryというフォルダが作成され、その中にmavenリポジトリが作成されます。

これが含まれたプロジェクト全体をGitHubにプッシュします。自分のアカウントにおけるMavenリポジトリのURLは以下のようになります。

https://github.com/wa2c/prefs/raw/master/repository/

余談ですが、もしこれをBitbucketにアップロードするなら、以下のようなURLになるはずです。

(存在しません)

https://api.bitbucket.org/1.0/repositories/wa2c/prefs/raw/master/repository/

なお、私の場合は個人開発で、管理が色々面倒なので、ソースコードとMavenリポジトリを一緒のGitHubリポジトリにまとめて置いてありますが、きちんと管理するなら、不用意にモジュールがアップデートされないように、GitHubリポジトリを別に分ける等の管理はした方が良いような気がします。


プロジェクトからの参照

Gradleにリポジトリを読込む場合、以下のようになります。


build.gradle


repositories {
maven { url 'https://github.com/wa2c/prefs/raw/master/repository/' }
}

dependencies {
implementation 'com.wa2c.android:prefs:0.1.1'
}



モジュールのアップデート

モジュールのアップデートを行う場合、maven.gradleに書いたバージョン番号を変更して、uploadArchives.batを再度実行すると、repository以下に新バージョンのフォルダが作成されます。これをそのままプッシュすれば、新バージョンを参照することができいます。


まとめ

今回の作業は、自分で共通で使いたい処理を手っ取り早く共有するために行いました。本当にただファイルを配置するだけ(実質、バッチファイルを叩いてプッシュするだけ)でお手軽なので、個人レベルならこれで十分のような気がしました。


参考

GitHubにMavenリポジトリをつくる - システム開発で思うところ

http://vermeer.hatenablog.jp/entry/2017/09/02/092837

やぎ小屋 | GitHubレポジトリにMavenのリポジトリを作成する

https://blog.yagi2.com/2016/12/15/how-to-deploy-maven-repo.html

githubをaar用のMavenなリポジトリとして使う - 未処分利益

http://www.vagrantup.jp/entry/2014/04/03/083930

【Android】Libraryを作ってprivateなgithubリポジトリにpushして、チームのみんなでgradleに書くだけで使えるようにするまで - Qiita

https://qiita.com/kgmyshin/items/87f560172c31c2fbd899