须知
本文以三个模块为例来搭建项目,以达到通俗易懂的初衷
模块parent —– 基模块,就是人们常说的parent
模块utiltools —– 其他模块都需要使用的一些工具,比如时间工具,json工具等
模块web —– web模块
先简单讲一下maven的一些特点
继承
这个可以理解为java中的继承类似,父类定义的东西,子类如果你想用就拿过来用就可以;
依赖
依赖就相当于我们java中的导包,二者有着异曲同工之妙;
你想用的东西只需要告诉maven它在哪就可以,它会自动帮你找过来给你用
聚合
这个暂时我还没找到java中能与之对应的原型;
maven聚合是将多个模块组装在一起,相互协调依赖运行;
---------------------
创建步骤 (详细多图)
1.建设一个新项目(这里使用IDEA创建Spring Initializr项目)
新建项目-1 新建项目-2 新建项目-3 新建项目-4项目目录(只保留pom文件即可,这里使用IDEA 所以还要保留IDEA的项目配置文件)
新建项目-5在pom.xml文件中添加<packaging>pom</packaging>
新建项目-6创建子模块(module)
创建子模块-1 创建子模块-2 创建子模块-3 创建子模块-4 新建子模块-5项目目录
项目目录结构-1创建子模块utiltools和上边创建子模块过程一样的,这里不再一一截图
创建完子模块后的项目目录
项目目录-2这时模块基本创建完成,接下来修改pom文件
1.添加<packaging>jar</packaging>
2.把继承org.springframework.boot改为继承父模块
注:由于其他子模块也一样修改,这里不再一一截图
修改子项目pom文件在父工程pom文件中声明子模块
声明子模块2.测试项目
说明:在utiltools模块和web模块些一个静态方法,在partent模块启动项目并执行utiltools模块和web模块的静态方法。
注意:由于partent调用其他模块的方法,所以需要在partent模块的pom文件中引入被调用模块依赖
partent模块引入其他模块依赖
引入被调用模块依赖其他子模块添加静态方法
添加静态方法parent模块启动项目并调用其他子模块的静态方法
parent模块启动项目到此多模块项目创建完成。
3.运维部署(多模块打包)
注意:多模块项目仅仅需要在启动类所在的模块添加打包插件即可!!不要在父类添加打包插件,因为那样会导致全部子模块都使用spring-boot-maven-plugin的方式来打包(例如BOOT-INF/com/hehe/xx)
本案例的启动模块是 parent, 只需在它的pom.xml 添加打包插件(spring-boot-maven-plugin):
前面步骤中在父工程pom文件中存在答辩插件,因此将父工程中打包插件部分代码移动到parent模块下的pom文件即可。
parent模块的pom文件打包工程
首先在IDE打开Maven插件,然后在聚合父工程helloworld中点击 clean ,然后点击 package 进行打包。
clen项目 打包项目打包的默认地址是:Building jar: E:\helloworld\parent\target\parent-0.0.1-SNAPSHOT.jar
启动项目
java -jar parent-0.0.1-SNAPSHOT.jar
启动效果
启动效果 依赖结构图全文到此结束!如有问题请留言。
本案例源码:https://gitee.com/huiziqin/multimoduleproject.git
网友评论