yak shaving life

遠回りこそが最短の道

Java ビルドツール入門 を読んだ


Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応

Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応

なぜ読もうと思ったか

あまりJavaと関わらずに生きていたのだが最近仕事で使い始めたのもありJava関連の書籍などを眺めていたところ発見。へー、Javaのビルドツールの本とかあるんだな、MavenとGradleは使ったことあるけどSBTとかBazelってなに?似たような技術を比較しながら学ぶのって面白いよなあ。読んでみるか。てな感じです。

どのような本か

完全にタイトル通り。Javaのビルドツール4種についての入門レベルの解説。 1章がビルドツールの基礎知識、2,3章がMaven、4,5章がGradle、6章がSBT、7章がBazel。

書評というか感想

それぞれのビルドツールについて最小構成のプロジェクトからwebアプリケーション、GUIアプリケーション、Spring Bootアプリケーション等のプロジェクトをビルドするサンプルコード付きで丁寧に解説していて非常にわかりやすい。プログラミング初心者でも大丈夫。多分。未経験者は無理。

ただしあくまで入門レベルの解説なので、これを読んだからと言っていきなり商用Webアプリのビルド設定ができるようにはならない。ちゃんと公式サイト等で理解を深める必要がある。この本の意義は複数のビルドツールで同じようなことをするとどのような違いがあるのかがサクッと分かるところであって、それぞれのツールに関してまともに扱えるレベルになることが目的であれば別の本(というか公式ドキュメント)を読んだほうがいい。

自分にとってはMavenもGradleも日本語での解説を読むのが初めてだったこと、SBTとBazelについては全く知らなかったことから楽しく読めました。土日で一気に読めるくらいの分量と難しさ(簡単さ)なのもよかった。

しかし、こういう本を読んでいるとスクリプト言語の手軽さが際立つと言うか、Rubyしかやってない人がこの本を読んだら「えっなんでビルドツールが4つもあるの?なに昔はAntというのがあって?そして他にもまだある?どういうことなの・・・?」とブツブツつぶやきながらrubygems.orgの方角(どっちだよ)に向かって祈らざるを得ないと思う。Gemさえ知ってればいいなんて最高。ありがとうGem。ありがとうcomposer。もしくはnpm、あるいはpip。

こいつらはただのパッケージ管理なのでmavenやgradleと等価ではないのだが、pom.xmlとか書いてるとどうしても「ビルドって大変だなあ」と思ってしまう。Gemfileだけ書いてrails sすればだいたい動く、みたいなのって素敵じゃないですか。スクリプト言語というか、Railsは偉大。この本関係ないけど。