3

モジュールの前に親を強制的にビルドする簡単な方法はありますか?

ユースケース: 次の問題を解決するためのベスト プラクティスは何かを理解しようとしています。

「A」と「B」という名前の 2 つのプロジェクトがあります。どちらにも「P」という名前の親があります。

「P」には共有リソースの依存関係管理があり、これにより共有アーティファクトに同じバージョンを使用できます。

「P」は、「A」と「B」をモジュールとして実行するためにも使用されます。

問題: 新しいアーティファクトが追加されると、バージョンを 'P' に追加し、依存関係を 'A' に追加します (たとえば)。今、Maven のクリーン インストールを実行すると、「dependencies.dependency.version」が見つかりません。

これは、maven が最初に自分自身の前にそのモジュールをビルドし、次に「A」にバージョンがないという事実によるものです。

次の下に「A」pomを配置できることを知っています:../そしてそれは機能します(ただし、常にではありません)。

私の質問に戻ります:モジュールの前に親を強制的にビルドする簡単な方法はありますか?

4

2 に答える 2

1

私の問題は、上記の相対パスだけでなく、親のpomバージョンが変数$ {version}であり、ビルド中に置き換えられなかったという事実であることがわかりました。

この問題を解決するために、親POMに親バージョンをハードコーディングしました。

于 2012-07-05T08:47:41.857 に答える
0

あなたの場合、それはモジュールの親==モジュールのアグリゲーターである状況であり、Mavenは親が同じビルドリアクターにある限り、モジュールの前に親をビルドする必要があり、通常はPプロジェクトレベルからすべてのモジュールをビルドする必要があることを意味します。そうでない場合でも、モジュール内のブロックに適切な<relativePath> タグがある場合は、親が正しく解決されるはずです(たとえば、ここを参照)。デフォルトではそこに値があり、アーティファクトの親がファイルシステムの親ディレクトリにあることを意味します。<parent>pom.xml..

于 2012-06-19T12:21:14.120 に答える