1

私はこれらの2つのpomファイルを持っています:

1)親pom.xml

..。

<modules>
    <module>web-module</module>
    <module>interface-module</module>
</modules>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>${project.groupId}.${project.artifactId}</groupId>
            <artifactId>interface-module</artifactId>
            <version>${project.version}</version>
            <type>ejb</type>
            <scope>provided</scope>
        </dependency>
    </dependencies>
 </dependencyManagement>

2)子pom.xml

<dependencies>
    <dependency>
        <groupId>${project.parent.groupId}.${project.parent.artifactId}</groupId>
        <artifactId>interface-module</artifactId>
        <version>${project.version}</version>
        <type>ejb</type>
    </dependency>
</dependencies>

質問は:

子でバージョンが省略されている親のdependencyManagmentによって管理されている依存関係を解決できないのはなぜですか?これらのモジュールを集約している親から継承されたサブモジュールにdependencyManagmentを使用しているときに、バージョンを指定する必要があるのはなぜですか?多分いくつかのアドバイス?

UPD:この動作は、子のgroupIdが変更されたときに存在し、親から継承されたものではないことが判明しました...基本的に私は親のサブモジュールを2つ持っており、どちらも親の子です。ChildモジュールでgroupIdを変更すると、依存関係の管理中にバージョンを指定するように求められますが、これはちょっと奇妙です。Mavenがそのように動作している理由はありますか?

4

1 に答える 1

2

親はサブモジュールに渡されません。つまり、サブモジュールでも親を宣言する必要があります。

また、1つのモジュールで2つのことを行っていることに注意してください。

  • サブモジュールの集約と
  • これを親として指定するモジュールの親として機能する

これは通常は問題ありませんが、セットアップがもう少し複雑になると、ある時点で循環依存または同様の問題が発生する可能性があります。あなたが問題を知っている限り、あなたは大丈夫なはずです。

詳細は次のとおりです

于 2012-07-20T11:24:17.860 に答える