インストールレスで Gradle してみる

とっても便利な Gradle ですが、 実はわざわざインストールしなくても 誰でも簡単に Gradle できるということを皆さんご存知ですか?

これは Gradle Wrapper という機能で ユーザーガイド (こちら) にもちゃんと記載されています。
ちなみに、この機能は Gradle 自身のビルドにも使われているのです。

ただ 『インストールしなくても...』というのは ちょっと語弊があるかもしれません。

と言うのも...
この Gradle Wrapper の機能を利用にするには まず初めに build.gradle に

task wrapper(type: Wrapper) {
    gradleVersion = '1.0-milestone-1'
}
を追加して Gradle がインストールされた環境で
$GRADLE_HOME/bin/gradle wrapper
のように wrapper タスクを実行する必要があるからです。

と言うことで...
ビルド担当者は 他のメンバーのためにがんばって Gradle をインストールして 上記のタスクを実行しましょう。
たった一度実行するだけで良いのですから...

上記のタスクを実行すると

my_project/
 +- gradlew
 +- gradlew.bat
 +- gradle/
      +- wrapper/
          +- gradle-wrapper.jar
          +- gradle-wrapper.properties
のようなファイルがプロジェクト配下に作成されます。
このファイルは迷うことなく プロジェクトの バージョン管理システムに コミットしてしまいましょう。 (全部 合わせても たったの 32KB!!)

そうすれば、他のメンバーは ソースをチェックアウトして プロジェクト配下の gradlew を

./gradlew build
のように実行するだけで Gradle をインストールしていなくても ちゃんとビルドできてしまうのです。
もちろん、Java がインストールされていて、インターネットにつながってないとダメですが...

興味のある方は

git clone https://github.com/bluepapa32/gradle-wrapper-sample.git
cd gradle-wrapper-sample
./gradlew -q
のように実行してみましょう。
いつものように "Hello, world!" が出力されるはずです。
私一人が上記の作業をするだけで 皆さんは何もインストールしなくても Gradle でビルドできてしまうのです。
もちろん Gradle がインストールされている環境であれば
gradle -q
でも全く同様にビルドできます。

この機能があれば Maven や Ant から Gradle への移行もかなり楽になるのではないかと思います。
既に Maven や Ant が普及しているようなチームの場合 メンバー全員の端末や統合環境等にわざわざ 新しく Gradle をインストールしてまで 移行することは難しいと思いますが、勝手に Gradle 化して バージョン管理システムにコミットしておくだけなら、誰も文句は言わないはずです。
暫くすれば きっと みんな Gradle へ移行し始めるのではないでしょうか。