栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Idea中SpringBoot多模块项目的建立实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Idea中SpringBoot多模块项目的建立实现

What

内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目

Why

便于维护 将一个大的单体项目分成多个子模块有利于模块间的维护, 删除或移动单个模块时对其他模块的影响也比较小 单个模块还可以复用

共享依赖 只需要在父类中定义公共的依赖项,子类模块都会共享父类的依赖项 在大型项目中会使得代码更容易简洁。

How

1.父模块

创建父项目(SpringBoot)

删除不需要的目录

去除src .mvn mvnw mvnw.cmd 文件

pom

packaging标签 打包方式改为"pom", 表示这个模块是 聚合模块 把子类模块都"聚合"起来 使用maven打包,可以从这个模块开始,会自动计算打包顺序

pom

dependencies与dependencyManagement标签

1. dependencies将依赖放入标签中 子模块会自动引入父类的的依赖

2. dependencyManagement将依赖放入标签中 子模块 不会 自动引入父类的的依赖 还需要在子类中声明一次依赖 GAV中 不需要 声明version标签,version同父类中的一致

父类pom文件demo


	
		org.springframework.boot
		spring-boot-starter-parent
		2.2.4.RELEASE
		 
	


	com.ybj
	my-app
	0.0.1-SNAPSHOT
	my-app
	springboot多项目

	pom

 

 

modules标签 这个标签管理的是被聚合的模块 当新建子模块时,modules会自动添加单个的module标签

启动类

父模块启动类,是整个模块的启动类 所有的请求都走父模块的端口 为了使子模块的服务也能启动,需要在父模块启动类上加入注解

@ComponentScan(basePackages = {"com.ybj.*",})

2.子模块

1.创建子模块

选择Module

选择maven项目

输入具体信息

2.pom

packaging标签 这里可以选择jar或者war 指定打包方式

parent 子类pom中的parent自动指向了父类的GAV 子类会自动引入父类pom中 dependencies 的中依赖项


 
  my-app
  com.ybj
  0.0.1-SNAPSHOT
 

模块间依赖 需要依赖某个模块,可以在pom中声明 这里的依赖是从本地仓库下载的,不是远程仓库

Maven Helper插件 在idea中安装maven helper插件 点击pom文件,选择 Dependency Analyzer

即可查看并搜索依赖项,这对于解决依赖冲突很有帮助

4.打包

方式1:聚合模块直接打包

在聚合模块打包,会自动计算依赖顺序,依次打包

依次执行 clean 与 install maven会自动计算构建顺序

方式2:使用插件

方式1的问题就是耗费时间长, 因为是全部打包, 所以就需要实现单个模块打包 这里需要借助spring-boot-maven-plugin插件


	
		
			org.springframework.boot
			spring-boot-maven-plugin
			2.3.0.RELEASE
			
				
					
						repackage
					
				
			
		
	

5. 常见问题

依赖冲突

因为子类会继承父类的依赖项,所以可能 导致依赖冲突,从而使项目无法启动。 这里可以使用maven helper插件进行冲突的排查

到此这篇关于Idea中SpringBoot多模块项目的建立实现的文章就介绍到这了,更多相关Idea中SpringBoot多模块内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/133748.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号