web-dev-qa-db-ja.com

Maven-1つのプロジェクトから複数の独立したMavenプロジェクトを構築する方法

3つのMavenプロジェクトがあります

  • WebComponents
  • DataComponents
  • ServiceComponents

各プロジェクトをビルドするとき、各フォルダーに移動して、各プロジェクトでmvn clean installを実行する必要があります。

私はマルチモジュールプロジェクトを調べましたが、私が目にするほとんどのリソースは、既存のプロジェクトの構造を変更する必要があることを示唆しています。

個別のpomファイルを含め、既存のプロジェクトに変更を加えることなく、独立した各プロジェクトをビルドする新しいプロジェクトを作成することはできますか?

私はおそらく、すべてのプロジェクトをビルドする単純なバッチファイルを作成することでこれを達成できますが、Mavenを使用して可能ですか?

26
ziggy

継承のないMaven集計 を探しています。参照ページに示されているように、パッケージ化が「pom」であり、「モジュール」のリストを持つ新しいPOMを作成するだけです。モジュールは、別のMavenプロジェクトへの相対パスです。

<project>
  ...
  <packaging>pom</packaging>
  ...
  <modules>
    <module>foo</module> <!-- module is in a subdirectory of this project -->
    <module>../bar</module> <!-- module is a sibling to this project -->
    <module>../../../other-projects/baz</module> <!-- somewhere else entirely -->
  </modules>
</project>

「アグリゲーター」と呼ばれる、そのようなpomを構築するときのデフォルトの動作は、同じ引数を使用して各モジュールディレクトリでMavenを実行したかのようにすべてのモジュールを構築することです。

38
Ryan Stewart

モジュールとして名前を付ける3つのプロジェクトの上のディレクトリ(モジュール名=サブディレクトリ名)にアグリゲータープロジェクトを追加すると、独自のPOMを変更する必要なく、アグリゲータープロジェクトをビルドできます。親として参照する必要はありません。

5
artbristol