ここからは、更にGradleを幸せに使える方法を紹介していきます。
gradle --daemon について
さて、Gradleを使っていると不満に思えてくるのが、実行時間の遅さです。なにせ、筆者の環境では先のJavaプロジェクトでgradle testすると実行に4.732秒ほどかかります。少し、長いなと感じますね。
その不満を解消するために、gradleには裏で常に待機していてもらうモードがあります。それが--daemonオプションです。
試しにgradle --daemon testとしてみましょう。1回目は裏で待機していないため、やはり5秒くらいかかりますがもう一回実行してみると、1.041秒というごく短時間でタスクを完了することができます。うーん、素晴らしい!
毎回毎回 --daemon とつけるのもメンドクサイので、GRADLE_OPTS環境変数に-Dorg.gradle.daemon=trueをセットすると、デフォルトでdaemonを使ってくれるようになります。
動いているdaemonを止めたい時や、一時的に使いたくない時のためにそれぞれ--stopや--no-daemonオプションが用意されています。
gradle wrapper について
さて、Gradleを導入したい!と思っても、チーム全員の開発環境をGradle用に整えて全員で歩調をあわせて…といったことを考えるととたんに腰が重くなるものです。しかし、Gradleならその点簡単に解決できます。
gradle wrapperという仕組みが用意されていて、チームの中でGradleをマジメにインストールするのはあなた1人、それ以外の人はsvnやgitのリポジトリにコミットされているファイルだけ使えばOK!という塩梅にすることができます。
見てみましょう。
apply plugin: "java"
apply plugin: "eclipse"
repositories {
mavenCentral()
}
dependencies {
testCompile "junit:junit:4.11"
}
task wrapper(type: Wrapper) {
gradleVersion = '1.4'
}
task wrapper の記述が増えていますね。この記述を増やした後に gradle wrapperを実行します。
そうするとgradlew(Mac、Linux用)とgradlew.bat(Windows用)とgradleフォルダが生成されます。これらをリポジトリにコミットするようにします。すると、他の人達はgradleコマンドの代わりにgradlewを使えるようになります。gradlewを実行すると、もし必要であればgradleコマンド実行用のバイナリを勝手にダウンロードしてくれます。
まとめると、「みんな!gradleを使うためにはgradlewを使ってくれればOKだから!」と宣言すれば、すぐにチーム全員で使いはじめることができるようになるということです。