作ったAndroidライブラリを公開する方法

公開方法の前に、簡単にAndroidライブラリ作成方法を書きます。

# Androidライブラリ作成

始めに、普通にプロジェクトを作成します。

![スクリーンショット 2016-04-30 22.18.31.png](https://qiita-image-store.s3.amazonaws.com/0/53996/bcd88e25-b8c8-b45e-e4b7-4441e1438e6d.png)

次に、File -> New -> New Moduleを選択します。

![スクリーンショット 2016-04-30 16.04.24.png](https://qiita-image-store.s3.amazonaws.com/0/53996/786db08f-5322-33b1-df49-2c3cd6d50ac5.png)

で、Android Libraryを選びます。

![スクリーンショット 2016-04-30 16.04.36.png](https://qiita-image-store.s3.amazonaws.com/0/53996/041123e8-0d91-8598-64e3-cff4aaa9dd44.png)

Libray nameなどを入力してFinishを押すと、ライブラリが追加されます。

![スクリーンショット 2016-04-30 16.08.02.png](https://qiita-image-store.s3.amazonaws.com/0/53996/82b1c44e-db1b-2d0f-294a-a069f56933c4.png)

最後に、**本体の方のbuild.gradleに「compile project(path: ':ライブラリ名')」を追加**すれば完了です。
頑張ってライブラリを作りましょうd(>_･ )

```build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "gupuru.libraysample"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile project(path: ':ライブラリ名')
    compile 'com.android.support:appcompat-v7:23.3.0'
}
```

# ライブラリ公開

今回は、BintrayにアップしてjCenterに登録する方法で公開します。

ちなみに、Androidライブラリの公開方法には、[JitPack](https://jitpack.io/)等を使った方法もあります。

## ①GitHubに公開

始めに、作ったライブラリをGitHubにpushします。

## ②Bintray登録

[Bintray](https://bintray.com/)で、アカウント登録します。右上らへんにSign Inがあるので、そこから登録します。

![スクリーンショット 2016-04-30 18.34.58.png](https://qiita-image-store.s3.amazonaws.com/0/53996/c68f8ea3-28b5-8bc1-d5d4-e5e90742c449.png)

登録完了したら、ダッシュボード画面に行き、右上らへんにあるアカウント名から**「Your Profile」を選択**してください。

で、プロフィール画面に飛ぶと思うので、アイコンの隣にある**「Edit」ボタンを選択**してください。

![スクリーンショット 2016-04-30 18.39.26.png](https://qiita-image-store.s3.amazonaws.com/0/53996/1882f800-37c2-4b0a-8d50-991565ca4d3b.png)

編集画面の左端に**「API Key」があるので、これをコピー**しておいてください。

![スクリーンショット 2016-04-30 18.39.48.png](https://qiita-image-store.s3.amazonaws.com/0/53996/342988d7-b417-51c9-da60-fce7f35442fa.png)

## ③ライブラリのアップロード

ライブラリをBintrayにアップロードするには[bintray-release](https://github.com/novoda/bintray-release)を使います。

**ルートディレクトリにある build.gradle に「classpath 'com.novoda:bintray-release:'」を追加**します。
※今回は、0.3.4を使用しています。

```build.gradle
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
        classpath 'com.novoda:bintray-release:0.3.4'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
```

次に、**ライブラリ側のbuild.gradleに「apply plugin: 'com.novoda.bintray-release'
」と「publish...」を追加**します。

```build.gradle
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

publish {
    userOrg = 'gupuru'
    groupId = 'com.gupuru.scaleanimation'
    artifactId = 'scaleanimation'
    publishVersion = '1.0.0'
    desc = 'scale animation'
    website = 'https://github.com/gupuru/AndroidOssLibrarySample'
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}
```

publishの中身の詳細は、[この辺](https://github.com/novoda/bintray-release/wiki/Configuration-of-the-publish-closure)を見て下さい。

最後に、ターミナルで以下のコマンドを叩くとアップロードを開始します。
PbintrayUserにユーザ名、PbintrayKeyに先ほどコピーしておいたAPIキーを書いてください。

```
 ./gradlew clean build bintrayUpload -PbintrayUser=ユーザ名 -PbintrayKey=APIキー -PdryRun=false
```

「BUILD SUCCESSFUL」と表示されたら、Bintrayを確認します。こんな感じにライブラリが追加されているはずです。

![スクリーンショット 2016-04-30 18.43.29.png](https://qiita-image-store.s3.amazonaws.com/0/53996/5ff3fc46-bda6-b1fd-6e00-66d07f29a994.png)

## ④jCenterに登録

先ほど追加されたライブラリを選択してください。

![jcenter.png](https://qiita-image-store.s3.amazonaws.com/0/53996/8f80d9b2-e63b-c362-8867-d5e75b443323.png)

このような詳細画面が表示されるので、右下にある**「Add to jCenter」を選択**してください。

![スクリーンショット 2016-04-30 18.44.10.png](https://qiita-image-store.s3.amazonaws.com/0/53996/ec38f639-3d41-8799-69a1-3538ac66961f.png)

こんな感じの画面が表示されるので、**「Send」を押して申請します。**

![スクリーンショット 2016-04-30 18.44.21.png](https://qiita-image-store.s3.amazonaws.com/0/53996/7d287a12-0237-2cad-3e5a-353bc2a65de0.png)

あとは、申請が承認されるまで待つだけです。だいたい2〜10時間ほどで完了します。

で、jCenterに登録されると、ライブラリの詳細画面にこのようなマークが表示されます。

![スクリーンショット 2016-04-30 22.57.37.png](https://qiita-image-store.s3.amazonaws.com/0/53996/eae7c3bd-607d-6bb2-ef72-710fc2bb9503.png)

あとは、このように１行だけ追加すればライブラリが使えますＯ(≧▽≦)Ｏ

```
compile 'com.gupuru.scaleanimation:scaleanimation:1.0.0'
```

# まとめ

以上が、ライブラリの公開方法です(๑˃̵ᴗ˂̵)و