我正在研究具有以下Maven架构的项目:
父pom有一个dependencyManagement
部分,用于声明外部依赖项的版本。
现在我应该如何声明内部依赖关系?
B2依赖于B1和A2。 A2对A1有依赖性。
我的选择是:
<!-- Submodule B2 -->
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
<version>${project.version}</version>
</dependency>
[...]
</dependencies>
dependencyManagement
,然后在子模块中添加没有版本的依赖项:<!-- Parent -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Submodule B2 -->
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
</dependency>
[...]
</dependencies>
<!-- Module A -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Module B -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>moduleA</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Submodule B2 -->
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
</dependency>
[...]
</dependencies>
答案 0 :(得分:1)
第一个选项通常被应用并且通常很好。