マルチモジュールのMavenプロジェクトがあります。モジュールの1つは、jarにパッケージ化された再利用可能なパーツであり、もう1つは、最初のモジュールに依存するwarweb-appです。2番目のモジュールでjetty:run-explodedを使用すると、パッケージ化されたjarがローカルのMavenリポジトリから取得されますが、最初のモジュールを再構築して、結果として生じる戦争にパッケージ化する必要があります。デフォルトの動作の代わりにそのような動作を強制する方法はありますか?
2 に答える
Maven の設計に関するドキュメントを読んだり、Maven を自分で使用したりすることからわかるすべてのことから、これはプロジェクトの独自のディレクトリでは実行できません。
Maven はモジュール パスをたどって階層を上げません。-amd (依存関係も作成) を使用すると、他のすべてのマルチモジュール pom を結び付ける最上位モジュールでのみ機能します。だからあなたができることはこれです:
トップレベルのディレクトリ
mvn -amd -pl jetty_module jetty:run-exploded
これをアーカイブするには、maven Advanced Reactor Options を使用できると思います。
http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/
-pl または -projects オプションを使用すると、マルチモジュール プロジェクトからプロジェクトのリストを選択できます。このオプションは、特定のプロジェクト セットに取り組んでいて、開発サイクル中にマルチモジュール プロジェクトの完全なビルドを待ちたくない場合に便利です。
Maven -amd(also-make-dependents ) も、マルチモジュール プロジェクトを一度ビルドするのに役立ちます。それを使用して、プロジェクトとそのプロジェクトに依存する任意のプロジェクトをビルドできます。