在多模块Maven项目中使用的最佳方法?

时间:2017-08-18 06:27:26

标签: java spring maven spring-boot multi-module

我有几个模块:

A
B
C

并且每个模块都有一个核心模块作为依赖项之一:

A+core
B+core
C+core

现在我应该将 A,B,C 打包在 D 中,但我设法从 排除核心模块 > B C ,我将核心模块保留在 A

D 
|+ A-core
|+ B-removed core
|+ C-removed core

在这种情况下,最好的做法是什么;这是一种不好的做法吗?

2 个答案:

答案 0 :(得分:3)

您可能有多个依赖关系在core D中提取pom.xml依赖关系 因此,不需要排除 这里重要的是,ABC依赖于完全相同版本的core依赖项,否则D包装可能包含core而不是另一个。
它可以无错误地编译,但如果这两个版本的使用不兼容,则会在运行时生成异常。

请专注于在coreAB中使用唯一版本的C 使用父pom或创建一个聚合公共依赖项的依赖项是缓解这种情况的工具。

答案 1 :(得分:2)

项目布局:

 root
   +--- pom.xml
   +--- core
   !      +-- pom.xml
   +--- A
   !    +-- pom.xml
   +--- B
   !    +-- pom.xml
   +--- C
        +-- pom.xml

在其他模块中使用core作为依赖项。构建顺序由Maven处理。