gradle使ってみる (1)

2012-12-08T00:00:00+00:00 gradle

ビルドツールっていうんすかね、ちょっと前から気になってたのでドキュメント読みを遂行しつつ勉強していこうかと

インストール

http://gradle.org からパッケージなりをダウンロードしてインストールする。apt-getでもインストール出来るみたいだけど、自分の環境がsun-java6-jdkをベースにしててopenjdk入れたくないのでダウンロードして配置する方向で

んで普通にgradleコマンドを実行して使うんですが、デフォルトだとちょっとウザいメッセージとか出てくるので

alias gradle="gradle -q"

な感じで設定

やってみる

gradleはbuild.gradleっていうのがデフォルトなファイルな模様。-bオプションで使うビルドファイルを指定出来る模様

task hello {
    doLast {
        println "hello"
    }
}

な感じで作っておいて

gradle hello

な感じで「gradle [タスク名]」で実行できる。でdoLastの他にもdoFirstっていうのもある。んまぁそんな感じでビルドファイルを定義していく

ちなみにビルドファイル自体はGroovyスクリプトな模様なので、Groovyな構文とか普通に使える模様

task hello {
    doLast {
        3.times {
            println "hello: $it"
        }
    }
}

タスクをショートカットする

task hello << {
    println "test"
}

な感じでdoLastを定義であればショートカット出来る模様(doFirstが出来るのかは不明)。ちなみに

task hello << {
    println "hello"
}

hello.doFirst {
    println "first"
}

という風にタスクにdoFirstを突っ込むことも出来る模様

デフォルトタスクを定義

defaultTasksを設定すれば可能らしい

defaultTasks "hello"

task hello << {
    println "hello"
}

タスクの依存関係を定義

dependsOnを使って設定可能

task hello << {
    println "hello"
}

task hoge(dependsOn: hello) << {
    println "hoge"
}

この場合hogeタスクの前にhelloタスクが参照される

org.gradle.api.internal.plugins.DefaultExtraPropertiesExtensionを使う

タスク内で「ext」で設定すればタスクプロパティ的な感じで使える模様

defaultTasks "hoge"

task hello << {
    ext.skip = false
}

task hoge(dependsOn: hello) << {
    if (!hello.skip) {
        println "hello"
    }
}

とりあえずはこんな感じっぽい。まだまだ続くgradleタスク編

gradle使ってみる (2) - タスク定義な小メモ - FuelPHPをやってみる (25) - ログ出力をテストする -