web-dev-qa-db-ja.com

Maven pomの親タグは何を表していますか?

例えば。:

<parent>
    <groupId>mycompany.trade.com</groupId>
    <artifactId>mycompany.trade.</artifactId>
    <version>1.1.1.0-SNAPSHOT</version>
</parent>

Mavenが親ポンを検索するということですか?はいの場合、どこで、どの順序で? 1レベル上のフォルダーにある可能性がありますか?または、ローカルリポジトリまたはレポジトリにありますか?

ありがとう。

45
user710818

はい、mavenはローカルリポジトリ(または nexus などのプロキシ)から親POMを読み取り、親POMとモジュールPOMからの情報をマージして「効果的なPOM」を作成します。

POMの概要 も参照してください。

親を使用する理由の1つは、すべてのモジュールで使用する必要があるアーティファクト、コンパイラ設定などのバージョンに関する情報を保存する中心的な場所があることです。

41
stacker

共通の依存関係、プロパティ、定数などは、中央の親プロジェクトpom.xmlで定義できます。

主な重要なことは、親プロジェクトは配布できないことであり、それは通常のpom.xmlに似ていることを除いてpackaging tag

    <groupId>com.company.demo</groupId>
    <artifactId>MavenInheritance</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

子はこれを使用してこれを継承できるようになりました

   <parent>
        <groupId>com.company.demo</groupId>
        <artifactId>MavenInheritance</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
4
Vino