为什么要使用maven模块?
视频链接:https://v.qq.com/x/page/k0539b44w0s.html
ppt链接:https://ptteng.github.io/PPT/PPT-java/Java_task02_MavenModule.html
随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构、分模块开发,来提高代码的清晰和重用。针对于这一特性,maven也给予了相应的配置。
我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可以独立的编译和测试运行每个模块,但是随着项目的不断变大和复杂化,我们期望能够使用简单的操作来完成编译等工作,这时Maven给出了聚合的配置方式。
所谓聚合,顾名思义,就是把多个模块或项目聚合到一起,我们可以建立一个专门负责聚合工作的Maven project 。
需要注意的几点:
1.父项目打包方式必须为pom
2.聚合模块的版本和被聚合模块版本一致
3.每个模块relative path的值都是一个当前POM的相对目录
4.聚合模块的内容仅仅是一个pom.xml文件,它不包含src/main/Java、src/test/java等目录,因为它只是用来帮助其它模块构建的工具,本身并没有实质的内容。
5.聚合模块和子模块的目录可以是父子结构,也可以是平行结构,当然如果使用平行结构,那么聚合模块的POM也需要做出相应的更改。
那么,如何通过父项目统一管理依赖?
1.这时可使用dependency management在父项目中管理依赖,解决不同模块间的依赖重复问题。在父项目中声明dependency management不会引入直接下载jar包,在子项目pom中声明才会引入。
2.相对于dependencyManagement,所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目全部继承。
建议使用dependency management进行管理。由于是全部继承,直接使用dependencies会在模块中引入其他模块的依赖。而且更便于管理。
6.参考文献
http://blog.csdn.net/wanghantong/article/details/36427411