Javaによるソフトウエア開発でよく使われるオープンソースのビルドツールには、米Apache Software Foundationが開発する「Apache Ant」(http://ant.apache.org/)や「Apache Maven」(http://maven.apache.org/)、米Gradlewareが開発する「Gradle」(http://www.gradle.org/)がある。ここでビルドツールとは、コンパイルやテスト実行、パッケージング、デプロイといった開発作業を自動化するツールのことである。

 従来は、柔軟性を備えるAntが広く使われてきた。ただし、処理の記述量が膨大になりがちなため、近年はより効率的にビルド作業が行えるMavenが普及し始めた。また、柔軟性と効率性を併せ持つGradleの1.0版が2012年6月にリリースされ、注目を集めている(図1)。

図1●Javaによる開発でよく使われるオープンソースのビルドツール
[画像のクリックで拡大表示]

 そこで、MavenとGradleを取り上げ、「Mavenを利用してきた開発チームが、容易にGradleに移行できるか?」 という観点で、MavenからGradleへの移行性について検証を行った。

後発のGradleはMavenの欠点を解消

 検証対象のMavenおよびGradleが、どのような特徴を持つビルドツールなのか簡単に紹介しよう。

 Mavenは、Antに比べて少ない記述量でビルドができることが高く評価され、人気を博している。標準のルール(ビルド手順)を備えており、独自手順を定義する際は、その標準から外れる部分についてのみ処理を記述すれば済む。すべての処理を記述しなければならないAntの加算的アプローチに対して、標準ルールから外れる部分だけ記述するというMavenの記述スタイルは差分的アプローチと呼ばれている。

 また、Mavenはインターネット上のMavenリポジトリーから、ライブラリをダウンロードして利用する機能を備えている。ビルドに際して必要なライブラリをローカルのディレクトリー(WEB-INF/lib)に配置してクラスパスを設定するという手順を踏む必要がない。ビルドスクリプト(pom.xml)に依存関係を定義するだけで、自動的にインターネットを介してライブラリがダウンロードされる。

 ただし、Mavenには柔軟性に欠ける部分がある。標準機能やプラグインが対応していない処理を行いたい場合には、独自プラグインの作成が必要になって手間がかかる。それがネックとなって、AntからMavenへの移行を試みたものの、結局はAntにとどまったという話を耳にしたことが何度かある。

 一方、後発のGradleは容易にビルドできるというMavenの長所と、自由にビルド手順を定義できるというAntの長所を併せ持つツールである。また、MavenやAntがXMLでビルド手順を記述するのに対して、GradleはGroovyというスクリプトを基としたDSL(Domain Specific Language)で記述する。つまりGradleではプログラミング用に作られたスクリプトを用いるので、条件分岐や繰り返しといった制御構造をMavenより容易に記述できる。

検証テーマ&検証にご協力いただける方を募集しています。詳しくはこちらへ。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら