私はこれらの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がそのように動作している理由はありますか?