マルチプロジェクトビルドのすゝめ

Gradle のマルチプロジェクトビルドは とにかくすばらしい。
このマルチプロジェクトビルド機能のために Gradle に乗り換えた プロジェクトもあると聞いことがあるが それも納得できる。

自分が Gradle を使ってみようと思ったのも この機能のためだし、 本気で 業務システムを モジュール化する気になったのも この機能がきっかけだ。
最近はモジュール化と言えば OSGi の話題の方が多いが、 実際問題、モジュール化における問題の多くは 実行環境で起きているのではない。
現場で起きているのだ。 (もちろん開発の...)
もちろん、OSGi を否定しているわけではない。その前にやることがあるでしょ!! と言う話...

で肝心のマルチプロジェクトビルドの詳細については

http://www.monochromeroad.com/artifacts/gradle/userguide/multi_project_builds.html
を見てもらえれば大体わかると思いますが、細かいことは抜きにして このマルチプロジェクトビルド 一番良いところは
リファクタリング感覚でモジュール化できる
ところだと思う。

と言うのも...
Gradle のマルチプロジェクトビルドは 通常のプロジェクトをビルドするのと それほど大きな違いはない。
と言うより逆に Gradle の強力なモジュール間の依存解決のおかげで、モジュール毎に必要最小限のビルドができるので非常に効率がよい。
しかも ほとんどの設定は プロジェクト間で共有できるので、変更は ほんのわずか...
何回 モジュール分割したって 大したことはない。何回だってやり直せられる。 (この辺の細かい話は次回...)

つまり、Gradle のマルチプロジェクトビルドを使って モジュール化するのに 最初から完璧な形はいらない。
普段やっているクラスやメソッドを分割、統合するのと同じように徐々にモジュール分割 (もしくは 統合) していけばよい。

これで いつだってモジュール化できる環境は整った。
あと足りないのは、小さな一歩を踏み出す勇気だけかな...