Gradleとは?
Gradleというビルドツールをご存じだろうか? JavaではビルドツールとしてMavenやAntが利用されることが多いが、Gradleはこれらと同種のツールで、Groovyを使用しているという特徴がある。Mavenは少しでも規約から外れたことをしようとした場合の煩雑さ、Antはすべての処理を一から記述しなくてはならずXMLが肥大化しがちという問題をそれぞれ抱えている。
GradleはGroovyを使用しているものの、Groovy専用のビルドツールというわけではなく、Javaでの開発にも利用できる。ビルドスクリプトの記述にGroovyを使用するため、MavenやAntのXMLベースのビルドファイルのように冗長な記述は不要だ。また、Maven/IvyリポジトリやAntのビルドファイルを利用できるなど既存資産も活用することができる。
このようにGradleはこれまでMavenやAntが抱えていた問題を解決する可能性を秘めたビルドツールといえる。今回はEclipseとGradleを組み合わせて利用する方法を紹介したい。
GradleとEclipseの連携方法
GradleとEclipseを連携させるには、大きく分けて2つの方法が存在する。1つめはGradleのeclipseプラグインを使用して、GradleのビルドスクリプトからEclipse用の設定ファイルを生成するという方法だ。これによってGradleベースのプロジェクトをEclipseにインポートして開発を行うことが可能になる。この場合、Eclipseでは基本的にコーディングのみ行い、Gradleのコマンドはコンソール上から実行することになる。
もう1つは、EclipseにGroovy開発を支援するためのプラグインをインストールし、Eclipse上からGradleを実行する方法だ。この場合、別途Gradleをインストールする必要がなく、Eclipse上で全ての操作が可能なため取っつきやすいというメリットがある。
GradleでEclipse用の設定ファイルを生成する
それではまず1つめの方法から試してみよう。ここでは例として、以下のような簡単なJavaプロジェクト用のビルドスクリプトを用意した。Javaプロジェクト用のjavaプラグインに加えてEclipseの設定ファイルを生成するためにeclipseプラグインを組み込んである。
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
この状態でコマンドラインから「gradle eclipse」と実行すると、.projectや.classpathといったEclipse用の設定ファイルが生成され、EclipseにJavaプロジェクトとしてインポートできるようになる。
EclipseにGroovy用のプラグインをインストールする
続いて、EclipseにGroovy用のプラグインをインストールする方法だ。Spring Frameworkでお馴染みのSpringSourceからGradle IDEというプラグインが提供されているので、これを使用する。Gradle IDEは以下の更新サイトからインストール可能だ(Eclipse 4.2の以外の場合はこちらのページを参照してほしい)。
http://dist.springsource.com/release/TOOLS/update/e4.2
上記の更新サイトではSpringSourceが提供する様々なプラグインが選択可能だが、ここではGradle IDEのみインストールすればよい
Gradle IDEをインストールするとEclipseのプロジェクト作成ウィザードで「Gradle Project」を選択できるようになる。
作成されたGradleプロジェクトでは「Run As」メニューもしくは「Gradle」ビューからGradleによるビルドを行うことが可能だ。
図5 : Gradleビュー |
まとめ
Gradleは非常に柔軟性が高く強力なビルドツールだ。Antのようにゼロからビルド処理を記述する必要はないし、Mavenのように型にはめられすぎて柔軟性に欠けるということもない。また、本稿で紹介しているようにIDEとの連携も可能だ。
既存の資産を活用できることに加え、Gradleをインストールしていない環境でもビルドを行うことができるなど実用性にも配慮されている。MavenやAntに辟易としているのであれば、Gradleを試してみてはどうだろうか。