Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
144
Help us understand the problem. What is going on with this article?
@kgmyshin

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

More than 1 year has passed since last update.

どのアプリを作るにしても共通のものを毎回実装するのは無駄なのでライブラリ化して使い回したいなぁとうすうす思っていたのでやってみました。

ライブラリプロジェクトつくってgithubにあげる

ライブラリプロジェクトを作って実装する

いろんなやり方があるのでしょうが、僕の場合は普通にNew Projectしてbuild.gradleの

apply plugin: 'com.android.application'

apply plugin: 'com.android.library'

に変更して中身をがりがり書きました。

また app というモジュール名が気持ち悪い方は モジュール名をlibraryなどと適切な名前に変えておきましょう。 setting.gradleの更新もお忘れなく。

以下は library に変更したとして説明してきます。

aarファイルの作成

aarは Android Library Projectの配布用ファイルといったところです。

このファイルを作成するには、プロジェクトのルートで下記コマンドを打って

./gradlew assembleRelease

下記ファイルが作られていることを確認できればOKです。

./library/build/outputs/aar/library.aar

maven-pluginを導入してpomなどの成果物を作る

ライブラリプロジェクトのbuild.gradleに下記を追記します。

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

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            repository url: "file://${repo.absolutePath}"
            pom.version = '1.0.0'             // version
            pom.groupId = 'com.genestream'    // グループ名
            pom.artifactId = 'common-library' // ライブラリ名
        }
    }
}

追記したら、プロジェクトのルートで下記コマンドを打ち成果物を作ります。

./gradlew uploadArchives

repositoryディレクトリの中にpomファイルなどができていれば成功です。

githubにpushする

あとは gh-pages ブランチを切って、そこにpushするだけです。

gh-pagesなのはそうすると後々URLが奇麗だから、ただそれだけです。

つくったライブラリを使用する

(一応) githubリポジトリがpublicな場合

使用したいアプリプロジェクトのアプリ用のbuild.gradleに下記を追記するだけ。

repositories {
    maven { url 'http://<githubユーザー名>.github.com/<githubリポジトリ名>/repository' }
}

dependencies {
    compile '<グループ名>:<ライブラリ名>:<バージョン>' 
}

今回の場合は下記になります。

repositories {
    maven { url 'http://genestream.github.com/library/repository' }
}

dependencies {
    compile 'com.genestream:library:1.0.0' 
}

簡単。

githubリポジトリがprivateな場合

puhblicな場合に比べて数行増えます。

まずgit-repoを導入します。

ルートのbuild.gradleに下記を追加します。

build.gradle
buildscript {
    repositories {
        maven { url "https://github.com/layerhq/releases-gradle/raw/master/releases" }
    }
    dependencies {
        classpath group: 'com.layer', name: 'git-repo-plugin', version: '1.0.0'
    }
}

次にアプリのbuild.gradleに下記を追加します。

build.gradle

apply plugin: 'git-repo'

repositories {
    github("<github name>", "<リポジトリ名>", "<ブランチ名>", "<Direcotry>")
}

dependencies {
    compile '<グループ名>:<ライブラリ名>:<バージョン>'
}

今回の場合は下記です。

apply plugin: 'git-repo'

repositories {
    github("genestream", "library", "gh-pages", "repository")
}

dependencies {
    compile 'com.genestream:library:1.0.+'
}

以上です!

144
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kgmyshin
ドーナツ食べたいっ! ドーナツドーナツ、どーんといきたいよぉ!
dmmcom
総合エンタテイメントサイト「DMM.com」を運営。会員数は2,900万人を突破。動画配信、FX、英会話、ゲーム、太陽光発電、3Dプリンタなど40以上のサービスを展開。沖縄での水族館事業参入、ベルギーでのサッカークラブ経営など、様々な事業を手掛ける。また2018年より若手起業家の支援を強化、「DMM VENTURES」による出資や、M&Aなどを積極的に展開している。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
144
Help us understand the problem. What is going on with this article?