1.2 Mavenの原則
Mavenは4つの原則を持ちます。
- Convention over configuration(設定よりも規約)
- Declarative execution(記述的な実行?)
- Reuse of build logic(ビルドロジックの再利用)
- Coherent organization of dependencies(依存性の管理)
これらはクリストファ・アレクサンダーのパターンの影響を受けているそうです。
1.2.1 Convention over configuration
はじめにRailsの話を引用してConvention over configurationを説明しています。
要点としてはMavenでは以下のような標準的な規約を提供しているということです。
- プロジェクトのための標準的なディレクトリ構成
Mavenではディレクトリ構成の標準を提供していているということです。
それに従えば、無駄に悩むこともないし、他の人がプロジェクトを見たときにも理解しやすいということでした。
#まあ他のツールによってディレクトリ構成を変えざるを得ない時はあると思いますが。
- 一つのMavenプロジェクトは一つのアウトプット
アウトプットが異なるなら別のプロジェクトにしたほうが良いということです。
複数のアウトプットを出す場合は目的や解決策もぶれやすいからというのが理由としてあるようです。
プロジェクトの連携もMavenならやりやすいというのもあると思います。
# 何を持ってアウトプットと呼ぶかがまだ良くわかりません…。JavaDocやテストリポートとかは副産物的な扱いなんでしょうか?
- 標準的な命名規約
Jarの名前を「ライブラリ名-バージョン番号.jar」にするなどファイルやディレクトリの命名規約を決めているということです。
#他にもソースは「ライブラリ名-バージョン番号-sources.jar」、JavaDocは「ライブラリ名-バージョン番号-javadoc.jar」というものありますね。
1.2.2 Reuse of build logic
#1.2の時と順番違うんですけど…まあ良いや。
Mavenでは色々な役割のプラグインが用意されていて、それらのプラグインはProject Object Model(POM)からの入力によって実行されるということです。