6

親を定義するために自分のプロジェクトを pom.xml として宣言しました。これにより、含まれているすべてのモジュールのリアクター ビルドがトリガーされます。すべてが正常にビルドされ、期待どおりに動作します。正しい順序でビルドされ、すべてのテストが正しく実行され、期待どおりの出力が得られます。

プロジェクトの 1 つが共有ライブラリです。<parent>ここに宣言を追加したくないので、追加しませんでした。それはすべてまだ機能します。

私の質問: サブプロジェクトのいずれかに親プロジェクトの宣言を追加する必要はありますか? プロジェクト間で双方向の関係を持つことの長所と短所は何ですか? 宣言を追加しないと、後で何かが機能しなくなったときに難しくなりますか?

1 つの質問に言い換えると、なぜ<parent>モジュールの pom.xml ファイルで構成を気にするのですか?

4

2 に答える 2

11

あなたの質問は、プロジェクトの継承とプロジェクトの集約の違いに関連しています。<parent>参照は継承関係を定義します。親pom.xmlの<modules>セクションは、集計を定義します。彼らは違う。

モジュールpom.xmlに構成がない場合<parent>、親pom.xml構成を継承しません。したがって、セクションの親pomで依存関係のバージョンを定義するとします<dependencyManagement>。親参照のないモジュールpom.xmlはそれを継承しません。または、すべての子モジュールが共通のライブラリを使用する必要がある場合は、親pom.xmlで依存関係を定義できます。ただし、親参照のないモジュールpom.xmlも、その依存関係を継承しません。

詳細については、プロジェクトの継承とプロジェクトの集約を確認してください。

于 2013-03-05T14:59:07.230 に答える
0

ビルドの構成方法によって異なります。親 pom が正しく構成されている場合は、次のような基本的な情報をversion and groupidプロジェクト間で共有できます。

プロジェクト内のすべてのモジュールで共有する必要があるプロジェクト全体の構成情報を定義できます。例えば:

<modelVersion>4.0.0</modelVersion>
<groupId>groupd.id</groupId>
<artifactId>artifact.id</artifactId>
<packaging>pom</packaging>
<version>version</version>

これがあれば、モジュール プロジェクトでその情報が重複することはありません。同じ情報を次のように参照できます。

<parent>
    <groupId>group.id</groupId>
    <artifactId>artifact.id</artifactId>
    <version>version</version>
</parent>

親 pom を使用して、上記で指定したよりも多くの情報を共有できることに注意してください。依存関係の管理、プラグインの管理を行うことができ、再利用可能なプロファイルを定義することさえできます.

于 2013-03-05T15:12:11.117 に答える