Maven多模块项目适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,使用户可以根据需求配置指定的模块。
接下来是在IntelliJ IDEA中的一个多模块项目搭建介绍:
项目分为三个部分,分别为web模块,util工具类模块,model基础数据模块。三个模块之间的关系为:web模块依赖于model模块,model模块依赖于util模块。通过maven的管理,我们可以快速的实现模块之间的聚合,也可以将模块独立出来作为公共类供别的模块引用。
1.首先创建父项目,按照普通maven项目创建即可
2.在项目下
选择创建maven项目,依次创建util,model,web三个模块。
这时候查看父项目的pom.xml文件会发现模块已经自动添加了
3.添加模块间的关联关系
在model模块的pom.xml中添加
在web模块的pom.xml中添加
4.配置tomcat
到此,我们的模块就已经搭建完成。补充完代码后就可以测试部署了。
1.parent项目是如何找到子项目的:
<span><</span><span>modules</span><span>></span>
<span><</span><span>module</span><span>>xxxxxx</span><span>_util</span><span></</span><span>module</span><span>></span>
<span><</span><span>module</span><span>>xxxxxx</span><span>_web</span><span></</span><span>module</span><span>></span>
<span><</span><span>module</span><span>>xxxxxx</span><span>_model</span><span></</span><span>module</span><span>></span>
<span></</span><span>modules</span><span>></span>
通过父项目中的pom.xml中配置
2.jar包管理
只需要在父pom.xml中添加jar包,子模块中即可引用。此外,在子模块中也可以单独添加jar包。除了jar包外,插件也可以通过这样的方式管理。
3.如果子模块间存在引用关系如何配置
比如在util模块中引用model,则自需要在util模块的pom.xml中加上model的引用即可
<span><</span><span>dependency</span><span>></span>
<span><</span><span>groupId</span><span>></span><span>com</span><span>.</span><span>xxx</span><span>.</span><span>xxxxxx</span><span></</span><span>groupId</span><span>></span>
<span><</span><span>artifactId</span><span>></span><span>xxxxxx_model</span><span></</span><span>artifactId</span><span>></span>
<span><</span><span>version</span><span>></span><span>1.0</span><span>-</span><span>SNAPSHOT</span><span></</span><span>version</span><span>></span>
<span></</span><span>dependency</span><span>></span>
4.模块之间存在冲突怎么办
当有文件冲突时,以当前模块为主,也可以通过 maven-war-plugin overlays 设置聚合规则。