在多模块 Maven 项目中使用的最佳方法?
Best approach to use in multi-module Maven project?
我有几个模块:
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
在这种情况下最好的办法是什么?这是一种不好的做法吗?
您可能有多个依赖项将 core
依赖项拉入 D
pom.xml
因此,不需要排除。
这里重要的是 A
、B
和 C
依赖于完全相同版本的 core
依赖项,否则 D
打包可能包含一个版本core
而不是另一个。
可能编译不出错,但是如果这两个版本的使用不兼容,运行时会产生异常。
所以专注于在A
、B
、C
.
[=33中使用独特版本的core
=]
使用父 pom 或创建聚合公共依赖项的依赖项是缓解这种情况的工具。
项目布局:
root
+--- pom.xml
+--- core
! +-- pom.xml
+--- A
! +-- pom.xml
+--- B
! +-- pom.xml
+--- C
+-- pom.xml
使用core
作为其他模块的依赖。构建顺序由 Maven 处理。
我有几个模块:
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
在这种情况下最好的办法是什么?这是一种不好的做法吗?
您可能有多个依赖项将 core
依赖项拉入 D
pom.xml
因此,不需要排除。
这里重要的是 A
、B
和 C
依赖于完全相同版本的 core
依赖项,否则 D
打包可能包含一个版本core
而不是另一个。
可能编译不出错,但是如果这两个版本的使用不兼容,运行时会产生异常。
所以专注于在A
、B
、C
.
[=33中使用独特版本的core
=]
使用父 pom 或创建聚合公共依赖项的依赖项是缓解这种情况的工具。
项目布局:
root
+--- pom.xml
+--- core
! +-- pom.xml
+--- A
! +-- pom.xml
+--- B
! +-- pom.xml
+--- C
+-- pom.xml
使用core
作为其他模块的依赖。构建顺序由 Maven 处理。