gradleで読み込めるライブラリをGitHubPagesに公開する方法

家でjavaで個人開発してると、最初はプロダクトを作ってたのにいつの間にかライブラリ作りにハマってしまうことがよくあります。
せっかく作ったライブラリだから、みんなが使えるように公開したいけど、MavenCentralに載せるのは面倒...。
そんなわけで、今回は手軽にサクッとGitHubPagesに公開する方法を紹介します。
この方法ならほぼgradleにコピペするだけでできるので簡単です。

intellijでプロジェクトを作りコードを書く

gradleでプロジェクトを作り、ライブラリになるコードを書きます。
ここは人それぞれなので省略します。

build.gradleを編集する

コードを書いてテストで動作確認をしたら、次はbuild.gradleをライブラリ用に編集していきます。
編集は2箇所です。

プラグイン追加

apply pluginに下記の1行を追加します。

apply plugin: 'maven'

ライブラリを生成するタスク追加

次にライブラリを作成するgradleのタスクを作ります。
まずは以下をコピペ。

uploadArchives {
    repositories {
        mavenDeployer {
            repository url: "file://${rootDir}/docs"
            pom.version = '0.1.0' // ★編集
            pom.groupId = 'com.naosim' // ★編集 
            pom.artifactId = 'libterm' // ★編集
        }
    }
}

コピペしたらpom.versionpom.groupIdpom.artifactIdの3箇所を任意の値に変更します。
これでgradleの設定は終わりです。

タスクを実行してコミット

次に先程作成したタスクを下記コマンドで実行して、ライブラリを生成します。

./gradlew uploadArchives

これを実行するとdocsディレクトリ配下にファイルが生成されるのでそれをGitHubにコミット&pushします。

これでプロジェクト側でやることは完了です。
差分全体はこんな感じ。
https://github.com/naosim/lib-term/commit/d29ca19ca2b8309fd6f7962d064d276e4af7066d

GitHub Pagesの設定

次にGitHub側でPagesの設定をします。
まずgithubのページを開きます。
Settings > GithubPages > Sources これを
master branch /docs folderに設定し、saveします。
これでライブラリが公開された状態になりました。
たとえば https://naosim.github.io/lib-term/com/naosim/libterm/maven-metadata.xml にアクセスするとライブラリのメタデータが見れます。

以上でライブラリ化完了!

使う側の設定

公開したライブラリを他のプロジェクトで使うときは、使う側のbuild.gradleに下記を追加します。

repositories {
    ...
    maven { url 'https://naosim.github.io/lib-term/' }
}

dependencies {
   ...
    compile group:'com.naosim', name:'libterm', version:'0.1.0' // ライブラリ側のgradleに設定した値
}

これで作成したライブラリを別のプロジェクトで使えます。
やったぜ。

まとめ

javaのライブラリをGitHub Pagesで公開する方法を紹介しました。
コピペ2回に設定を少々でできるので簡単ですね。
「ライブラリを作る」と聞くと少し堅苦しい感じがしますが、この方法であれば簡単なので、まずは自分だけが役立つライブラリを公開してみてはいかがでしょうか?