gradleで使うファイルについて

2013-10-02

gradleコマンドは、いくつかのファイルを暗黙的に使ってビルドを行います。
(antのbuild.xmlやmavenのpom.xmlと同じですね。)

gradleが使うファイルには下記のようなものがあります。

  • build.gradle ・・・ メインのビルドスクリプトです。
  • settings.gradle ・・・ 設定ファイルです。プロジェクトツリーを定義します。マルチプロジェクトの場合必ず必要となります。
  • gradle.properties ・・・ プロパティを設定します。ここで設定したプロパティはbuild.gradleから参照することができます。

gradleはカレント・ディレクトリからbuild.gradleを探し、このファイルを参照してプロジェクトのビルドを行います。
つまり、build.gradleのおいてあるディレクトリでgradleコマンドを実行してあげないといけないということですね。


build.gradleにはビルドタスクを記述します。

apply plugin: 'android'

android {
    compileSdkVersion 'Google Inc.:Google APIs:16'
    buildToolsVersion "16.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            resources.srcDirs = ['src/main/java']
            aidl.srcDirs = ['src/main/java']
            renderscript.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        debug.setRoot('build/debug')
        release.setRoot('build/release')
    }
}

上の例では、
1行目でandroidプラグインを使うことを宣言し、
3行目からandroidアプリケーションのビルドタスクを記述しています。
ビルドタスクの内部では
4〜10行目でSDKバージョンを設定し
12行目〜ソースの場所とビルドファイルの出力先について設定しています。


build.gradleにはGroovyスクリプトを記述することができます。

task count {
    doLast {
        4.times { print "$it " }
    }
}

ちなみに、上の例と下の例は全く同じです。上のコードは下のように省略して書くことができます。

task count << {
    4.times { print "$it " }
}

今回はbuild.gradleのさわりについて書かせて頂きました。
次回はsettings.gradleについて書きたいと思います。