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

What

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

Why

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

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

How

1.父模块

创建父项目(SpringBoot)

删除不需要的目录

去除src .mvn mvnw mvnw.cmd 文件

pom

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

<packaging>pom</packaging>

dependencies与dependencyManagement标签

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

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

父类pom文件demo

<!--	父类: springboot自带的启动类父类-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

<!--	创建时填写的基本信息-->
	<groupId>com.ybj</groupId>
	<artifactId>my-app</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>my-app</name>
	<description>springboot多项目</description>
<!--	父类的packing只能是pom-->
	<packaging>pom</packaging>
<!-- 子类直接继承-->
 <dependencies>
<!-- 子类需要在pom中 手动加入依赖(version不用写)-->
 <dependencyManagement>

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

启动类

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

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

2.子模块

1.创建子模块

选择Module

选择maven项目

输入具体信息

2.pom

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

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

<!-- 父类:自动选择了父类-->
 <parent>
  <artifactId>my-app</artifactId>
  <groupId>com.ybj</groupId>
  <version>0.0.1-SNAPSHOT</version>
 </parent>

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

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

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

4.打包

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

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

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

方式2:使用插件

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

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<version>2.3.0.RELEASE</version>
			<executions>
				<execution>
					<goals>
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

5. 常见问题

依赖冲突

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

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

(0)

相关推荐

  • 构建多模块的Spring Boot项目步骤全纪录

    前言 众所周知,在多个项目中可能会相同的模块,如果每个项目都去创建一遍的话,这样开发效率会很低.比如在开发一个APP应用的时候,有供APP使用的接口项目.后台管理系统,两个项目共用一套数据库,分开的话需要配置多次mybatis,如果有些表需要改动的话,则都需要改动,所以使用多模块管理这些模块的话,会非常的方便. 通过阅读本文你将了解到:如何将已有SpringBoot项目改成多模块 & 如何新构建多模块SpringBoot项目 以下示例基于我正在使用的order(订单服务)进行演示,无论你用的是什

  • SpringBoot多模块项目框架搭建过程解析

    这篇文章主要介绍了SpringBoot多模块项目框架搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建根项目,New Project 创建一个名为 sms-bomber 的 SpringBoot 新项目,打包为 JAR 的即可,这里只添加 Lombok 与 spring-boot-starter-web 依赖,这两个依赖会传递给所有子模块,删除创建完成的项目中的 .mvn\ src\ mvnw mvnw.cmd 创建启动模块,根目

  • 详解Maven 搭建spring boot多模块项目(附源码)

    本文介绍了Maven 搭建spring boot多模块项目,分享给大家,具体如下: 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖.都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(

  • SpringBoot+Maven 多模块项目的构建、运行、打包实战

    本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建.运行.打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 项目的目录: 主项目 springboot-multi 子模块 entity.dao.service.web 一.使用IDEA创建一个SpringBoot项目 : File -> new -> Project 项目名称为springboot-multi 二.删除项目中的src目录,把pom.

  • 解决SpringBoot多模块发布时99%的问题

    解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案 如果使用 SpringBoot 多模块发布到外部 Tomcat,可能会遇到各种各样的问题.本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大数 SpringBoot 发布问题. SpringBoot 多模块发布的 8 大原则 1 在发布模块打包,而不是父模块上打包 比如,以下项目目录: 如果要发布 api 就直接在它的模块上打包,而

  • 浅谈springboot多模块(modules)开发

    为何模块开发 先举个栗子,同一张数据表,可能要在多个项目中或功能中使用,所以就有可能在每个模块都要搞一个mybatis去配置.如果一开始规定说这张表一定不可以改字段属性,那么没毛病.但是事实上, 一张表从项目开始到结束,不知道被改了多少遍,所以,你有可能在多个项目中去改mybatis改到吐血! 在举一个栗子,一个web服务里包含了多个功能模块,比如其中一个功能可能会消耗大量资源和时间,当用户调用这个功能的时候,可能会影响到其他功能的正常使用,这个时候,如果把各个功能模块分出来单独部署,然后通过h

  • SpringBoot创建maven多模块项目实战代码

    工作中一直都是一个人奋战一人一个项目,使用maven管理,看这个也挺好,但是总感觉没有充分发挥maven的功能,于是研究了一下这个,网上关于这个的文章很多,虽然不是很好,但我从中收获了很多,在这集百家所长,写一份实战记录,大家跟着我一块做吧! 声明:构建多模块不是最难的,难点是如果把多模块打包成一个执行jar. SpringBoot官方推崇的是富jar,也就是jar文件启动项目,所以如果在这里打war包我不具体介绍,如果需要的朋友可以给我留言,我回复. 建议clone项目后,在看教程(有不足的地

  • springboot+gradle 构建多模块项目的步骤

    springboot用以进行web项目开发的便捷性,本文不再赘述,主要是想将工作中基于springboot与gradle的多模块项目的构建经验进行总结与归纳. 1.创建项目 首先安装java和gradle,本文选用的java版本为1.8.0_40,gradle版本为2.10,安装过程本文不再赘述. 其次创建项目,名称为 springboot-mm: mkdir springboot-mm cd springboot-mm gradle init 此时的项目结构如下: 接下来,创建多个模块,这里以

  • springboot 多模块将dao(mybatis)项目拆分出去

    前言: 以前我们在建项目的时候, 要么将所有的package建在一个项目里面, 在处理引用的时候, 真的很方便. 不用担心, 有些东西配置不到或者读取不到. 或者, 将package独立出去, 到一个项目中或者子项目中. 这时候, 项目中的引用处理, 还是有些麻烦的. 不过好处更多, 不再表述. 在 idea 里面, 推荐使用 多模块 建项目, 而不再是 eclipse 里面的那种方式. 那这里, 就试着将一个springboot 的项目拆分到子模块中去, 看看效果如何. 项目拆分: 1. 目录

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

    What 内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目 Why 便于维护 将一个大的单体项目分成多个子模块有利于模块间的维护, 删除或移动单个模块时对其他模块的影响也比较小 单个模块还可以复用 共享依赖 只需要在父类中定义公共的依赖项,子类模块都会共享父类的依赖项 在大型项目中会使得代码更容易简洁. How 1.父模块 创建父项目(SpringBoot) 删除不需要的目录 去除src .mvn mvnw mvnw.cmd 文件 pom packagin

  • springboot实现多模块项目添加一新模块

    目录 springboot多模块项目添加一新模块 springboot添加新模块的方法 springboot项目基本结构如图 一.选择file->projectstructure文件->项目结构 二.关闭它然后在test模块上左击选复制 三.选要复制的文件 四.如果软件有bug 五.打开文件结构窗口 六.为根项目添加java文件夹 springboot多模块项目添加一新模块 选择Maven Module,填写模块名 若空白,catalog目录可选择internal 更改包名 完成后父pom下的

  • springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)

    创建之前项目之前 记得改一下 maven  提高下载Pom速度 记得 setting 中要改 maven  改成 阿里云的.具体方法 网上查第一步 搭建parents 项目,为maven项目 ,不为springboot 项目 记得修改groupId 第二步 搭建多个子模块, honor-dao   honor-manager   honor-common记得创建 honor-manager 的时候 要把他的gruopId 改成com.honor.manager 这里爆红的原因是 因为 我做到后面

  • SpringBoot创建多模块项目的全过程记录

    构建项目 我们采用IntelliJ IDEA工具来创建一个Maven项目,项目的pom.xml要添加对应SpringBoot的配置,因为Maven多模块项目内的模块并不能独立的存在,必须有一个介质来包含,项目结构如下下图所示 我们创建的Maven项目结构如上图所示,pom.xml内我们对应的添加了对SpringBoot的支持,因为我们需要使用SpringBoot来作为项目基本框架,并在pom.xml配置文件引入了Web模块的支持,所以介质项目内的Module都会用于Web依赖 我们在介质Mave

  • 教你怎么在IDEA中创建java多模块项目

    一.使用spring initializr创建java工程 1.启动IDEA,新建java工程,使用向导创建一个springboot框架的工程 2.设置项目信息,java版本选择8 3.勾选项目需要用到的依赖 4.设置项目名称,点击完成 5.等待maven将项目所需要的依赖都下载完毕,展开项目结构,如下图所示,这就创建完一个springboot框架的简单工程 二.修改工程,添加web模块 1.修改appdemo工程的pom文件,修改工程打包方式为pom,这样项目就变成了一个父工程 <packag

  • SpringBoot集成mqtt的多模块项目配置详解

    前言 近期为了准备毕设,准备使用SpringBoot搭建mqtt后端,本篇主要记录了在IDEA中搭建SpringBoot mqtt的多模块项目的过程 开发工具及系统环境 IDE:IntelliJ IDEA 2020.2 操作系统:Windows 10 2004 Java Version:1.8 SpringBoot Version:2.1.17.RELEASE 项目路径 Study |----study-common # 存放公共类 |----study-mapper # mapper层 |--

随机推荐