我们有3个模块,分别是A,B和C.这3个模块是交叉依赖的。要编译AI需要B和C.要编译BI想要A和C.要编译C我们想要B和A.所以如何构建这3个模块在一起,我们想得到A.jar,B.Jar和C.war。
答案 0 :(得分:0)
使用<dependencies>
中的pom.xml
部分为另一个模块添加依赖项。
为所有模块创建父pom。构建父级时,maven构建所有子级(除非在命令行上使用-pl :mymodule
选择器)。请参阅pom的parent
部分
您还可以添加具有A,B和C依赖关系或子集的第4个子模块D(没有人工制品,只是一个pom模块)。构建D时,maven使用选项-am
(也是make)编译A,B,C,这会强制maven构建所选模块和依赖项。
请注意,必须避免在代码中存在循环依赖关系,否则maven将无法构建项目。如果您有循环依赖关系,请将两个模块的代码需求提取到另一个模块中,并在两个模块中添加依赖关系
答案 1 :(得分:0)
你要解释的是循环依赖。 Maven不支持循环依赖,如果您尝试这样做,您的构建将失败。
您可以创建一个多模块maven项目。将所有常用功能移至模块A.在模块B和模块C的pom.xml
<dependencies>...</dependencies>
部分中添加模块A的依赖关系。
Maven将按照您在父项目pom.xml
<modules>...</modules>
部分中指定的顺序构建模块。通过这种方式,您可以通过将<packaging>...</packaging>
定义为jar
或war
在各自的模块pom.xml
<中来创建A.jar,B.jar和C.war / p>