AndroidのGradleでbuildTypes毎にtaskを作成する方法

前提

build.gradleにて、下記のように書くことで、buildTypesを増やせます。

buildTypes {
    hoge.initWith(buildTypes.debug)
    hoge {
        applicationIdSuffix ".hoge"
    }
}

これだけで、 assembleHoge とかは作成されます。

src/main と同じように、 src/hoge ディレクトリを作り、そこにファイルを配置することで、それらで上書きすることが出来ます。

本題

作成した hoge 環境と、元々ある debug , release それぞれにタスクを定義したいとする。
(各環境事のapkファイルを、ゴニョゴニョやる必要がある、とか。)

GradleでAndroidアプリを起動するタスクを追加する - インターネッコはじめました

の丸パクリですが。

とりあえず、下記のように定義できる。

android.buildTypes.all { theBuildType ->
    def buildType = theBuildType.name

    task ("exe${buildType.capitalize()}", dependsOn: "prepare${buildType.capitalize()}") << {
        // 何かを実行したり
    }

    task ("prepare${buildType.capitalize()}") {
    }
}

この場合、

./gradlew exeHoge

とか、

./gradlew exeRelease

とかが出来る。