【发布时间】:2020-01-23 12:42:11
【问题描述】:
我正在开发一个具有以下 maven 架构的项目:
- 父级 (pom)
- 模块 A (pom)
- 子模块 A1 (jar)
- 子模块 A2 (jar)
- 模块 B (pom)
- 子模块 B1 (jar)
- 子模块 B2 (jar)
- 模块 A (pom)
父 pom 有一个 dependencyManagement 部分声明 external 依赖项的版本。
现在我应该如何声明内部依赖?
B2 依赖于 B1 和 A2。 A2 依赖于 A1。
我的选择是:
- 添加依赖版本
<!-- Submodule B2 -->
<dependencies>
<dependency>
<groupId>com.app</groupId>
<artifactId>submoduleA2</artifactId>
<version>${project.version}</version>
</dependency>
[...]
</dependencies>
- 将所有子模块(A1、A2、B1、B2)及其版本添加到父 pom 的
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>
- 通过dependencyManagement添加模块之间的依赖关系:
<!-- 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>
- 其他选项?
【问题讨论】:
标签: maven multi-module