spring boot 多模块项目搭建与普通 maven 项目多模块搭建

开发工具idea

使用idea开发maven项目我感觉比myeclipse结构更清晰

myeclipse 父模块,子模块都是在一个工作空间workspace里同级表示

idea project也是一个module项目,作为父模块 子模块创建在idea project下 层级关系更直观

一.spring boot 多模块项目搭建

1.新建一个 空的 spring-boot工程  作为多模块项目父类工程

 

录入项目信息,next

spring boot版本我选择最新正式版本,dependencies都不选,父类项目是为了管理子项目的 ,next,next

 

新建好的项目结构如下,修改pom.xml  增加打包方式 为pom (原因还是因为父类项目是为了管理子项目的,一个pom.xml文件就能完成) <packaging>pom</packaging>

 

删除项目里的文件, 只保留(.idea文件夹 , 和项目 pom 文件, 以及一个 *.iml 文件 ) 删除后如下所示

 

2.创建module,现在创建一个spring-boot 项目,该项目也是主项目

next

先选择最基本的spring web依赖 

next

finish完成后项目结构如下

3. 设置父子项目的关系

 

我们查看wydev-main的pom.xml文件设置的parent,目前是继承spring-boot-starter-parent的,我们需要改为继承wydev-parent,在由wydev-parent去继承spring-boot-starter-parent

(这也是为什么wydev-parent需要创建成spring-boot项目 , 因为他的子模块把spring-boot-starter-parent的继承改成wydev-parent,而wydev-parent没spring-boot-starter-parent继承的话,wydev-main的spring-boot项目就出问题了)

parent改为wydev-parent

在父项目中添加 包含的子项目

父项目pom.xml修改前           --》          修改后

 

4.目前多模块项目最核心的wysdev-main  spring-boot项目已经配置好,接下来就是合理的设计,把wysdev-main 不同领域的代码拆分都子模块

比如我把wysdev-main中的业务代码独立出来,单独写在wysdev-service模块中 

 

现在创建普通的maven项目就够 只是把原本写在wysdev-main的代码独立一个模块 ,空的maven项目就行

next

finish

点击finish后 我们查看wydev-parent 的pom.xml 发现modules自动包含了 wydev-service ,同时wydev-service的pom.xml也集成自wydev-parent

(因为spring-boot项目分多模块 springboot本身要继承spring-boot-starter-parent,但是 spring Initializr里设置不了模块依赖才手动改pom,普通maven项目都能界面配置的)

 

 

6.设置wysdev-main依赖wysdev-service,设置完毕后在wydev-service写的代码 在wysdev-main编译时会编译进去

就是wysdev-main引入了wysdev-service的代码

(wysdev-service就是一个普通的java maven工程,打包后是一个jar)

 

7.多模块项目建立好了,如果还需要把wysdev-main的代码,比如接口独立出来,新建wysdev-api模块 也是和wysdev-service步骤一样的

需要注意的是 wysdev-service是无法使用wysdev-main的类和方法的,是wysdev-main引入了wysdev-service

 

8.测试效果

设置注解扫描路径,默认是启动类所在包及子包

wysdev-service新建了一个controller

然后我们启动wysdev-main 项目

浏览器访问http://127.0.0.1:8080/wys/userModule/get

 

成功返回信息,多模块项目配置完毕。

 

 

二.普通 maven web项目多模块搭建

普通 maven web项目多模块搭建比spirngboot多模块简单多了

建立父项目的时候不用选择spring Initializr,选择maven项目就行

 

然后创建子模块项目是会出现选择父模块的下拉框,直接选择就关联好了,pom的配置也会自动加上

只有在主模块中引入其他子模块需要手写代码添加下依赖就行

<dependency>
            <groupId>com.wying</groupId>
            <artifactId>wydev-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

 

(先建一个空的parent项目让所有子项目继承是方便统一管理子项目依赖

可以在parent的pom中配置所有子项目的共同依赖jar,版本等,parent继承也是maven一个很重要核心的功能,

不使用parent继承关系,那么所有子模块都需要在各自pom单独引入需要的jar,版本改动,版本冲突问题肯定不少)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值