これまでJavaのビルドツールはMavenしか使ったことがなかったのですが、どうやらGradleってのがイケてるらしいです。技術を学ぶときは手を動かすのが1番!ということで、Springのサイトに載っているGradleのチュートリアルをやってみました。
Gradleってなに?
オープンソースのビルドツールです。JavaのビルドツールだとMavenがデファクトスタンダードになっていますが、最近Gradleもぐんぐん有名になってきています。
Mavenではビルドの設定をXMLで記述するため理解しづらいところがありましたが、Gradleではスクリプト(Groovyという言語)で記述するので可読性も自由度も高いのです。
Gradleのインストール方法
Gradleのインストール手順の記事をご覧ください。Gradleを使うためにはJava(JDK)が必要なので、Javaのインストール手順の記事も必要に応じてご覧ください。
今回使用したGradleとJavaのバージョンは以下のとおりです。
手を動かしてGradleを学んでみる
Gradleをインストールしたら、さっそくGradleを使ってみましょう。今回のチュートリアルでは、IDE(Intellijやeclipseなど)は使わずにターミナル上ですべて操作していきます。
まずは以下コマンドで、チュートリアル用のディレクトリを作成します。
以下のようなディレクトリ構造になっていることを確認します。
続いて、シンプルなJavaクラスを2つ作成します。
src/main/java/hello/HelloWorld.java
src/main/java/hello/Greeter.java
Gradleのビルド設定ファイルであるbuild.gradleを新規作成し、以下1行を記述します。この1行は、Javaプラグインを使ってビルドすることを意味します。Gradleでは、build.gradleを使ってGradleのプラグインやビルドに必要なライブラリを定義します。Mavenでいうところのpom.xmlですね。
build.gradle
以下コマンドで、ビルドします。ビルド成功すればOKです。
ここまで進められたら、以下のようなディレクトリ構成になっているはずです。
gradle buildすることで、buildディレクトリが作成されましたね。このディレクトリ配下にコンパイルしたクラスファイルやライブラリなどが格納されます。このあたりを全部まとめてやってくれるのがビルドツールのいいところですね。
今度はHelloWorld.javaの内容を変更し、外部ライブラリ(Joda Time)が必要な処理を追加してみます。
src/main/java/hello/HelloWorld.java
gradle buildを実行すると、エラーが発生するはずです。これは、外部ライブラリの定義をbuild.gradleに記述していないからです。
以下のとおり、build.gradleファイルに外部ライブラリを定義してあげましょう。
build.gradle
それぞれの項目を補足しておきます。
repositories:ライブラリの取得先。今回はMavenリポジトリを指定しました。dependencies:ライブラリの指定。compileは、コンパイル時のみ必要という意味です。今回はJoda Timeのバージョン2.2を指定しました。
上記項目以外にも、Gradleにはいろいろと便利な定義を記述できるようです。
改めてgradle buildしてみましょう。今度は以下のとおり、成功するはずです。
ディレクトリ構成は以下のようになっているはずです。
libsディレクトリにJoda Timeライブラリがないのは、コンパイル時のみ使用したからですね。最初このディレクトリ構成を見たときに「あれっ?」と思いましたが、build.gradleにcompileで指定しているのを見て理解しました。
Gradle WrapperでGradleをもっと便利に使う
Gradle Wrapperは指定したバージョンのGradleを呼び出すスクリプトで、Gradleのビルド方法として推奨されています。
Gradle Wrapperを使うことで、GradleがインストールされていないシステムからでもGradleを使ったビルドが行えるのです!しかも、WindowsやMac、LinuxといったマルチOSから実行できるのです!
Gradle Wrapperと一緒にプロジェクトを配布することで、事前にGradleをインストールすることなく、開発者がすぐに作業できるようになります。しかも、Gradleのバージョンも指定されるので環境によって動作が異なるなんてこともありません。
さっそく使ってみます。今回は、Gradleのバージョン2.13を指定してGradle Wrapperを実行してみます。
すると、以下のようなディレクトリやファイルが作成されます。
あとは、gradleコマンドのかわりに、Windowsであればgradlew.bat、Mac・Linuxであればgradlewを実行してやればOKです。
例えば、gradle buildを実行したいときは、以下コマンドを実行すればOKです。
まとめ
Gradle初心者によるGradle入門でした。新しい技術を学ぶときは手を動かしてみると理解が深まりますね。