2014年12月18日木曜日

[書評] Gradle徹底入門

はじめに

このエントリーは Java Advent Calendar 2014 の 15日目として書かれたものです。

14日目は、@bitter_foxさんの「Load to an Author -Contributing OpenJDK-」です。

16日目は、@zephiransasさんの「Lambda-behaveでテストを書こう」です。

Gradle徹底入門とは


Gradle徹底入門
http://www.shoeisha.co.jp/book/detail/9784798136431

まずはじめに、献本して下さった@nobusueさん、ありがとうございました。

この本を読んでまず思ったのは、これまで手厚くサポートされたビルドツールの本を見たことがありませんでした。
過去に日本語で発売されたantやmavenの本でここまで詳しく、且つプロジェクトのプロセスにまで踏み込んだ本は、無いと思います。

個人的にこの本を読んで欲しいのは、未だにEclipseでビルドして、手作業でdeployしてるような残念なプロジェクトに配属されている人です。
読んで世の中には便利なツールがあることを知ってほしいと思います。

JJUG CCC 2014 FallでGradleで始めるGroovy expandというセッションを行う機会にも恵まれまして、この本の紹介をさせて頂きました。
そのセッションでは、Groovy, Gradleの入門編ということで導入に関する箇所を紹介いたしました。

今回は、どういった場面でこの本を使っていくと良いかを紹介したいと思います。

パターン

まず、そもそもGradleの名前だけ知っていて、ちょっと興味がある人の場合は、まず「導入編」だけを読んでどういったものかを知ってほしいと思います。

AndoridStudioを使い始めて、Gradleの世界に連れて来られた人は、「導入編」、「第9章 Androidプロジェクトでの運用」を読んでひとまず記号や文字列が何を意味しているのか知って、次にAndroid Pluginの更新に追従できるように頑張ってください。

今までAntしか使ってこなかった人は、「導入編」、「基礎編」、「実践編」、「第11章 Jenkinsとの連携」、「第12章 アーカイブの作成とファイルの公開」「第14章 ほかのビルドツールからの移行」を実際に書きながらやっていくといいと思います。

Mavenを使っていてGradleに興味がある人は、おそらく2種類だと思います。

まずは、今のプロジェクトがMavenのレールから外れてしまってどうにかしたい場合ですが、利用してるMavenプラグインが少なく、Antや他のスクリプト言語と併用しているような場合は、この本を全部読むことで何とか出来る可能性があります。

次に、どうしても特殊なMavenプラグインに依存していて、Gradleのサードパーティプラグインにも無いような場合は、全部読んだ後に「第13章 エキスパートへの道」を実践してみてプラグインを自作する価値があるかを決めてください。

Javaのライブラリのソースを見たらGradleのプロジェクトだった場合は、「基礎編」を重点的に読んで、タスクがどういった手続きを表しているのか、どういったプラグインに依存していて設定されているのかを知る武器を手に入れてください。

特にGradleはGroovyのDSLを作りやすい機能を活用して省略や簡略化されているのおり、同じ内容でも表現が違う場合があるので、「基礎編」や付録に付いているGroovyリファレンスを読んでください。
それでも足りない場合は、Groovyを知らない人のためのbuild.gradle読み方書き方入門を見てください。

おわりに

この本では、Gradle 2.0を基にしています。
今後のバージョンアップについて不安になっていらっしゃる方もいると思いますが、2.x系であればこの本に書かれている内容のAPIが変わることは無いでしょう。
また、APIにも実験的要素であれば、しっかりドキュメントにも載っているので、使う際には確認しておくといいと思います。

おそらくページ数の多さで迷っている人がいるのであれば、今後もJavaのプロジェクトでMavenのレールから外れる可能性が高かったり、AndroidStudioの様にGradleでしかビルドが出来ないプロジェクトに関わるような可能性があるのであれば、是非購入して役立てて頂ければと思います。

また、まだ公開されているプラグインの数が少ないので、自分の困っていることを解消したいと思ったら、プラグインを作って見て公開するまでの手順も載っていますので、挑戦してみてはいかがでしょうか。