オープンソースのビルドツール「Gradle」の主な特長やLinux/Windowsでの環境構築方法、さまざまな使い方に加え、CI/バージョン管理との連携方法を解説します。
Javaではアプリケーションをビルドしたり、Webアプリをサーブレットコンテナへデプロイしたりするときにビルドツールを使うことがよくあります。ビルドツールを使うと、開発中に変更があった部分に影響する範囲だけコンパイルをしたり、アプリのパッケージを作成するときに必要な比較的単純なファイルコピーの作業をミスなく実行したりすることが、簡単にできるようになります。
今回紹介をするGradleはオープンソースのビルドツールの1つです。Javaでよく使われているビルドツールとしては、Apache AntやApache Mavenがありますね。Gradleも最近はいろいろなプロジェクトで採用されているようです。
ライセンスは「http://www.gradle.org/license」にあるように、「Apache License, Version 2.0」です。
今回は、このGradleについて、特長やインストール方法、基本的な使い方、Javaアプリのビルド方法、「Jenkins」や「Git」との連携方法を解説します。
大きな特色としては、DSLとして、プログラミング言語Groovyでビルド手順を記述できることがあります。GroovyはJava開発者になじみやすい文法を採用していますから、Javaの開発者ならすぐに使えるようになるはずです。
Apache Ivyベースの強力な依存関係管理機能を持っています。
今回は紹介しませんが、「Eclipse」のGradleプラグインを使えば、Eclipse用のプロジェクトファイルを生成することもできます。「NetBeans」にもGradleプラグインがあります。また、グーグルが提供する新しいAndroidアプリ開発環境「Android Studio」と、その基になっている「IntelliJ IDEA」は標準のビルドツールがGradleです。
人気の統合開発環境(IDE)でも使えるようになっていますから、利用に当たって困ることはないでしょう。
Antビルドの呼び出しもできるため、既存のAnt資産を生かすこともできます。
Gradleを利用するには、JDK 5以降のJavaが必要です。内部でGroovyを使っているので、Groovyのインストールも必要そうに思えますが、いりません。Groovyのライブラリが同梱されているからです。
ここでは下記の環境へインストールする手順について説明します。OSとJDKのインストールについては省略します。
Gradleのインストールは簡単です。Webサイトのダウンロードページ「Gradle - Downloads」からGradleを入手してインストール先へ展開するだけです。ここでは、2014年2月24日時点での最新版「gradle-1.11-all.zip」をダウンロードしました。
作業は基本的に「端末アプリ」を使って行います。なお、Ubuntu 12.04で「端末」を開くには、[Ctrl]+[Alt]+[T]キーを入力するか、ダッシュボードで「端末」と入力して表示されるアイコンをクリックします。ここでは、ホームディレクトリに「applications」というディレクトリを用意して、そこへ展開します。
$ mkdir ~/applications; cd ~/applications $ wget http://services.gradle.org/distributions/gradle-1.11-all.zip $ unzip gradle-1.11-all.zip $ ln -s gradle-1.11 gradle
ダウンロードしたファイルを展開すると、「gradle-1.11」ディレクトリが作成されるので、「ln」コマンドでシンボリックリンクを付けています。
展開されたディレクトリには下記のものが含まれています。サンプルが同梱されていますから、何か困った時にはここを調べてみると良いでしょう。
gradle
├── LICENSE:ライセンステキスト
├── NOTICE:注意書きテキスト
├── bin/:Gradleのバイナリ
├── changelog.txt:変更履歴
├── docs/:ユーザーガイド、DSLのリファレンスガイド、APIドキュメントなど
├── getting-started.html:始め方を説明したHTML
├── init.d/:Gradle初期化スクリプト配置用ディレクトリ
├── lib/:ライブラリ(groovy-all-1.8.6.jarなど)
├── media/:画像など
├── samples/:サンプル
└── src/:ソースコード
次に、Gradleに関係する環境変数を設定します。環境変数「GRADLE_HOME」には、Gradleを展開したフォルダーを指定します。環境変数「PATH」には、「$GRADLE_HOME/bin」を追加します。環境変数「JAVA_HOME」には利用するJavaのディレクトリを指定します。「JAVA_HOME」の指定は必須ではありませんが、複数のJDKを共存させている環境では指定しておくと便利です。
ここでは、「$HOME/.profile」へ下記を追加しました。Oracle JDKは「$HOME/applications/jdk7」にインストールしてあるとします。自分の環境に合わせて指定しましょう。追加した後に再ログインが必要です。
APP="$HOME/applications" export JAVA_HOME=$APP/jdk7 export GRADLE_HOME=$APP/gradle export PATH=$JAVA_HOME/bin:$PATH export PATH=$GRADLE_HOME/bin:$PATH
準備ができたら端末アプリを起動して、バージョン情報の表示をしてみましょう。
$ gradle -v Gradle 1.11 (略) Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.7.0_51 (Oracle Corporation 24.51-b03) OS: Linux 3.2.0-59-generic-pae i386
Groovy、Ant、Ivy、JVM、OSの情報が表示されればOKです。
Gradle実行時にJVMオプションを指定したい場合は、環境変数「GRADLE_OPTS」と環境変数「JAVA_OPTS」を使います。両方指定して使うこともできます。「JAVA_OPTS」は多くのJavaアプリケーションでも利用されています。
Gradleだけに反映したいオプションは「GRADLE_OPTS」へ、他のJavaアプリケーションと共通で反映したいオプションは「JAVA_OPTS」へ指定すると良いでしょう。
例えば、利用メモリは「GRADLE_OPTS」で指定して、プロキシ設定は「JAVA_OPTS」で指定するといった使い分けが考えられます。今回は特に指定はしませんが、メモリ不足でコマンドが実行できないときなどに利用してください。
Windows環境へのインストールも簡単です。Linux環境へのインストールと同様にしてWebサイトのダウンロードページ「Gradle - Downloads」からGradleを入手してインストール先へ展開するだけです。
ここでは、Cドライブ直下に「applications」というフォルダーを用意して、そこへ展開します。ダウンロードしたZIPファイルをエクスプローラーで右マウスクリックし、[すべて展開]します。「gradle-1.11」フォルダーに展開されるものはLinux環境へのインストールで説明した内容と同じなので、そちらを参照してください。
展開されたフォルダーから「gradle-1.11」フォルダーを取り出し、これを「C:\applications\gradle」というフォルダー名で移動します。環境変数もLinuxへのインストールで説明した内容と同じなので、そちらを参照してください。ここではシステムでの環境変数の指定方法は省略しますが、必要であれば「GRADLE_HOME」と「PATH」の登録をしておくと良いでしょう。
動作確認をするにはコマンドプロンプトを起動して、次のように実行します。OSがWindows 7の情報になっただけで、Linux環境と同じ結果になります。
> set GRADLE_HOME=C:\applications\gradle > set PATH=%GRADLE_HOME%\bin;%PATH% > gradle -v Gradle 1.11 (略) Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.7.0_51 (Oracle Corporation 24.51-b03) OS: Windows 7 6.1 amd64
以降、本稿ではLinux環境へインストールしたgradleコマンドを使って説明していきますので、Windowsユーザーは適宜読み替えてください。
Copyright © ITmedia, Inc. All Rights Reserved.