使用Maven构建多模块项目
Posted zhouyon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven构建多模块项目相关的知识,希望对你有一定的参考价值。
一、为什么使用Maven构建多模块项目
- 复用,划分出来的模块可以供其他项目使用。
- 固化,划分出来的某个模块可让专人开发,沉淀技术,分工协作。
- 优化依赖,每个模块有各自的pom。
- 节省时间,可在单个模块上进行build。
二、在IDEA中创建多模块项目
1.进过创建后的完整项目结构,其中blog_admin,blog_web为SpringBoot项目,其余无骨架Maven项目。
三、模块间的依赖关系
1.依赖class
2.通过座标直接依赖jar
1.直接引用
<dependencies> <dependency> <groupId>com.zhou</groupId> <artifactId>blog_file</artifactId> <version>${onlyblog.version}</version> </dependency> </dependencies>
2.在父类中声明使用该模块
<!-- dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖, 是不会从父项目中继承下来的;只有在子项目中写了该依赖项, 并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom 因为blog_core需要被多次使用,我需要指定使用在某个项目中 --> <dependencyManagement> <dependencies> <dependency> <groupId>com.zhou</groupId> <artifactId>blog_core</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement>
然后在子模块中便可直接继承父模块使用,不用在写版本号
<dependencies> <dependency> <groupId>com.zhou</groupId> <artifactId>blog_core</artifactId> </dependency> </dependencies>
这样做的好处:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。
以上是关于使用Maven构建多模块项目的主要内容,如果未能解决你的问题,请参考以下文章