1. ホーム

[解決済み】Maven モジュール + 特定の単一モジュールのビルド

2022-03-24 04:45:59

質問

マルチモジュールのMavenプロジェクトがあり、親プロジェクトに P と3つのサブモジュール A , B および C . どちらも BC は戦争プロジェクトで、どちらも A .

と入力することができます。 mvn compileP で、すべてのサブモジュールが適切にコンパイルされています。問題は、特定のモジュールに対して操作を行いたい場合です。

プロジェクト用のwarをパッケージ化したい B からパッケージコマンドを実行すると B のディレクトリの依存関係が見つからないと文句を言われます。 A .

この質問で理解できました。 Mavenと依存モジュール Maven はこの種の依存関係の解決のために設計されたものではないのでしょうが、そのために、どのようにして B ?

  1. を実行する必要がありますか? mvn package を使いたいだけなのに、プロジェクト階層全体に対して B ?

  2. をパッケージ化するたびに、Aのスナップショットをローカルリポジトリにインストールしなければならないのでしょうか? B ?

この2つ目のシナリオは、次のような場合、あまり楽しいものではありません。 A はまだ活発に開発されている最中です。

ベストプラクティスがあれば教えてください。

解決方法は?

<ブロッククオート

ベストプラクティスがあれば教えてください。

を使用します。 Mavenの高度なリアクターオプション を、より具体的に説明します。

-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list

だから、ただ cd を親Pディレクトリにコピーして実行します。

mvn install -pl B -am

そして、これでBとBが必要とするモジュールがビルドされます。

を参照する場合は、コロンを使用する必要があることに注意してください。 artifactId で、ディレクトリ名とは異なります。

mvn install -pl :B -am

ここに記載したとおりです。