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

Best approach to use in multi-module Maven project?

我有几个模块:

A
B
C

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

A+core
B+core
C+core

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

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

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

您可能有多个依赖项将 core 依赖项拉入 D pom.xml
因此,不需要排除。
这里重要的是 ABC 依赖于完全相同版本的 core 依赖项,否则 D 打包可能包含一个版本core 而不是另一个。
可能编译不出错,但是如果这两个版本的使用不兼容,运行时会产生异常。

所以专注于在ABC.
[=33中使用独特版本的core =] 使用父 pom 或创建聚合公共依赖项的依赖项是缓解这种情况的工具。

项目布局:

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

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