13

私はMavenを初めて使用し、最初のプロジェクトツリーを設定しようとしています。私は2つの選択肢の違いを理解するのに苦労しています:

バンドルしたいjarプロジェクトとwarプロジェクト(それぞれ2つ)があります。従来は、4つすべてを依存関係として持つearプロジェクトを作成するだけでした。

今、私はpomの集約について読みましたが、これ以上何をすべきかわかりません(http://maven.apache.org/pom.html#Aggregationを参照)。4つのプロジェクトで集約されたPOMを作成する必要がありますか?

基本的に私の質問は、依存関係が私の「独自の」プロジェクトの1つである場合、モジュールと依存関係の大きな違いは何であるかということだと思います。

4

1 に答える 1

11

モジュールは、物事を整理するための単なる方法です。

マルチモジュールビルドでは、アーティファクトのツリー全体を1つのステップでビルドできます(Joel Testを思い出してください)。ただし、これらはそれぞれ個別のアーティファクトであり、依存関係として個別に参照できます。

これがサンプルレイアウトで、括弧内にパッケージ化されています。

root (pom)
    - project1 (jar)
    - project2 (war) -> references project1 as dependency
    - project3 (jar)
    - project4 (war) -> references project3 as dependency
    - project5 (ear) -> references project2 and project4 as dependency

mvn installルートディレクトリを呼び出して、ツリー全体を構築します。

ここでの前提は、project1はproject2によってのみ使用され、project3はproject4によってのみ使用されるということです。それ以外の場合は、より複雑なシナリオがあります。

root (pom)
    - project1 (jar)
    - project2 (jar)
    - project3 (war) -> references project1 and project2 as dependency of scope provided
    - project4 (war) -> references project1 and project2 as dependency of scope provided
    - project5 (ear) -> references project1 through project4 as dependency

したがって、モジュールは複数のプロジェクトを個別に構築する作業を取り除きますが、それでも依存関係を自分で管理する必要があります。

于 2010-07-27T12:56:27.160 に答える