我有几个模块:
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
在这种情况下,最好的做法是什么;这是一种不好的做法吗?
答案 0 :(得分:3)
您可能有多个依赖关系在core
D
中提取pom.xml
依赖关系
因此,不需要排除
这里重要的是,A
,B
和C
依赖于完全相同版本的core
依赖项,否则D
包装可能包含core
而不是另一个。
它可以无错误地编译,但如果这两个版本的使用不兼容,则会在运行时生成异常。
请专注于在core
,A
,B
中使用唯一版本的C
。
使用父pom或创建一个聚合公共依赖项的依赖项是缓解这种情况的工具。
答案 1 :(得分:2)
项目布局:
root
+--- pom.xml
+--- core
! +-- pom.xml
+--- A
! +-- pom.xml
+--- B
! +-- pom.xml
+--- C
+-- pom.xml
在其他模块中使用core
作为依赖项。构建顺序由Maven处理。