これまで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入門でした。新しい技術を学ぶときは手を動かしてみると理解が深まりますね。