在实际的工作当中,我们项目开发为了更好的管理项目,通常分为多模块,如启动模块(用于启动项目)、业务模块(实际业务编写都在这里进行)、公共模块(系统相关的配置、工具类等)等,具体根据自己项目来分多个模块。
本人电脑环境:
- idea2022 版本
- jdk1.8 版本
一、创建空的项目步骤
也可以直接新建maven项目,进行删除对应的src目录文件,留下pom文件,这边是先建一个空的目录,其次在添加对应的模块。
1、创建一个空的项目步骤如下:
- new Project
- empty Project
- 填写对应的项目名
- 存储路径
- 点击create
实操具体的步骤如图所示:
以上步骤完成我们得到的是一个空的项目如下图所示:
注意:此时我们创建好的只是一个空的项目!
二、进行添加项目的模块(父工程模块)
由于我们建多模块Maven项目,为了方便依赖管理需要建一个模块为父工程模块,删除模块的src目录(当父工程),并且xml中packaging标签设置为pom,使用dependencyManagement标签进行统一管理依赖,子模块需要使用父依赖只要声明依赖不需要编写版本号,也可以进行添加自己的依赖,不然新建其他子模块则进行继承父所有的依赖,如果子模块使用自己的依赖还会导致依赖冲突的问题。
1、父工程模块的新建步骤如下:
- 鼠标点击项目名右键New
- New Module
- 填写模块的相应信息(名称、存储路径、开发语言、构建系统、jdk、包名等)
- 点击reate
实操具体的步骤如图所示:
填写父工程模块基本信息(建立其他模块原理一样的步骤)
Add sample code(是否需要添加示例代码默认就可以,后面可以自行删除),advanced Settings对应设置模块的包,包一般取名为com.xxxx。
然后我们新建完成后得到的父工程模块如下图所示:
进行删除src目录
修改pom.xml文件的打包方式,作为父工程模块必须packaging标签设置为pom
添加dependencyManagement标签进行统一依赖管理
到此父工程模块新建完毕!
三、新建子模块
新建子模块和父模块步骤一样,需要在那个模块下新建子模块则点击该模块右键进行新建即可,但是要注意在填写子模块的基本信息存储路径要看是否在当前父路径下,子模块需要使用父依赖直接声明不需要写版本号,不使用则需要编写,在此父工程可以创建多个子模块,如项目启动模块、公共模块、业务模块等。
1、子模块的新建步骤如下(当前子模块作为项目启动模块):
- 选择父模块进行New Module
- 填写子module基本信息(基本与创建父模块填写一样,但是多了一行Parent显示父工程模块)
- 点击创建
实操具体的步骤如图所示:
填写模块基本信息,注意parent是否是当前选择的父工程模块
最后创建完成得到的子模块如下,并且pom.xml文件有Parent标签被管理的父模块,父工程模块也会有modules标签管理的子模块名称
因为当前模块是当作启动模块,所以还需要添加plugin进行项目打包,其他模块则不需要添加打包插件,默认是war包,目的将写的程序和它本身所依赖的jar包一起build到一个包里,当然打成不同的包使用的插件不一样,这里是进行打包成jar包,可以进行参考。
到此子模块创建结束!按照当前的步骤还可以创建其他的模块如公共模块、业务模块等,最后当模块作为依赖关系,比如公共模块、业务模块、启动模块,需要避免各模块相互依赖,不然会编译报错,如启动模块引用业务模块,业务模块引用启动模块这样会导致相互依赖,应该单一依赖,启动模块依赖其他模块依赖,多模块避免相互依赖。
分别按照上面步骤现在分别建好公共模块、业务模块
这里业务模块有web请求处理,也可进行新建单独的web处理请求模块。
模块中分别加入的依赖:
公共模块:可以自行增加其他依赖,这边演示就加一个hutool工具
<!--hutool-all工具--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.6.5</version> </dependency>
业务模块:这里就增加一个web依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
启动模块:这里就只有一个springboot依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 公导入共模块--> <dependency> <groupId>com.wukangyou</groupId> <artifactId>MavenDemoBusiness</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--业务模块--> <dependency> <groupId>com.wukangyou</groupId> <artifactId>MavenDemoCommon</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
注意:避免循环依赖
四、启动测试项目
在业务模块新建controller并编写Demo前端控制器进行测试
项目启动测试
进行访问我们的测试的接口地址如下:
最后也是测试没有问题,ok!
五、结束
以上是创建Maven多模块项目步骤,实现各个模块分开,模块各尽其职,更方便的管理项目,便于后期的维护,以上是个人对Maven多模块创建的理解,步骤仅做参考,有不对的地方,欢迎大家交流指导。