0

私が取り組んでいる 3 つの別々のプロジェクト (A、B、および C) があります。

プロジェクト B と C は、プロジェクト A が生成する jar に依存しています。

依存関係が見つからない場合、Maven にはプロジェクト A を自動的にビルドする機能がありますか?

私がこれまでに見つけた答えは、他の 2 つのプロジェクト モジュール (リポジトリ レイアウトを意味し、それらをプロジェクト A に組み込むことを意味すると思います) を作成し、親/子 pom を作成することを示しています。

単純な「いいえ」も私の結論の1つでした。

BとCでプロジェクトAのモジュールを作成すると、mavenはそれをあまり好きではないようです。Maven はビルド時に現在のプロジェクトの範囲外のプロジェクトを表示できますか? 少し言葉足らずで申し訳ありません。

4

1 に答える 1

1

A、B、および C が共通のコンテナー プロジェクトのモジュールである場合、シナリオは正常に機能します。

ルート pom.xml から:

<modules>
 <module>project-a</module>
 <module>project-b</module>
 <module>project-c</module>
</modules>

ここで、「project-a」などは、親フォルダー内の Maven プロジェクト フォルダーの名前です。

これが機能するには、親プロジェクトが必要<packaging>pom</packaging>です。

次に、親プロジェクトをビルドすると、すべての子が順番にビルドされます。または、高度な Maven リアクター フラグの 1 つを使用することもできます。

たとえばmvn clean install -pl project-b、プロジェクト B のみをビルドします。

詳細については、Maven By Example ブックのマルチ モジュールの章mvn --helpを実行してお読みください。


しかし、この質問に対して:

依存関係が見つからない場合、Maven にはプロジェクト A を自動的にビルドする機能がありますか?

... 答えは常にノーです。依存関係が見つからない場合、Maven は失敗しますが、ビルドするプロジェクトを決定することはありません。あなたは、ビルドが必要なプロジェクトを担当しています。

于 2012-12-05T20:00:30.410 に答える