使用idea搭建多module的springboot项目
一,创建parent项目
1.首先创建一个父项目,不用选择任何依赖。注意:父项目的type选择Maven POM类型这样就会创建只有pom.xml文件的maven项目
![父项目的type选择Maven POM类型](https://i-blog.csdnimg.cn/blog_migrate/b1f47df2be4f5eed4dac2ec6522d3c5c.jpeg)
这样创建的父项目不需要删除多余的文件,如果选择Maven Project类型则需要删除多余文件,只保留(.idea文件夹 , 和项目 pom 文件, 以及一个 *.iml 文件 )
![正确的父项目结构](https://i-blog.csdnimg.cn/blog_migrate/d428bdf632dd84b4316e7d7b1e36cac0.png)
3.在父项目的pom.xml文件中将打包方式设置为为<packaging>pom</packaging>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.study</groupId>
<artifactId>study-spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>study-spring-boot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
二,创建子模块
1.在子Module中声明父工程,注意:未修改时子Module默认继承的是SpringBoot提供的父工程,需要修改<parent></parent>
中的版本信息,修改成父项目的版本信息(直接将父项目的pom文件中的版本信息复制粘贴到<parent></parent>
中即可)
![在子Module中声明父工程](https://i-blog.csdnimg.cn/blog_migrate/0c903c827faeb374eaf371c82cd83887.png)
2.在父项目的pom文件中声明子Module。
![生命子模块](https://i-blog.csdnimg.cn/blog_migrate/40cc808c0e25b1bf5031d1e0ffb7da80.png)
3.保留study-spring-boot-web的启动类和配置文件,其他项目的启动类都删除,整个项目只需要一个启动类和一个配置文件
三,不同层的保留文件
1.study-spring-boot-api层删除多余文件,只保留src文件夹和项目pom文件, 以及一个 *.iml 文件 (删除test文件夹)
2.study-spring-boot-service层删除多余文件,只保留src文件夹和项目pom文件, 以及一个 *.iml 文件
3.study-spring-boot-web层删除多余文件,完全保留src文件夹(包括启动类和resource配置文件)和项目pom文件, 以及一个 *.iml 文件
![删除多余文件](https://i-blog.csdnimg.cn/blog_migrate/ae8636040a0834e4db7f745b4515886b.png)
IDEA构建maven项目生成的文件详解可以参考这篇文章
四,不同层的依赖关系
1.在service模块中添加api模块的依赖信息
![依赖api层](https://i-blog.csdnimg.cn/blog_migrate/f8a0b695c1bffec281c23b2bd1b90b16.png)
2.在web模块中添加service模块的依赖信息
![依赖service层](https://i-blog.csdnimg.cn/blog_migrate/914e9cb092bfdfdc7686764328e22a26.png)
五,启动项目
1.编写测试controller
![测试](https://i-blog.csdnimg.cn/blog_migrate/c8a116108cca920205c04ab56c92133b.png)
2.运行结果
![结果](https://i-blog.csdnimg.cn/blog_migrate/007ddf475abc6c293840cc95d4215c15.png)
至此Spring Boot多模块项目搭建就完成了。以上是我的学习总结,如有错误请批评指正,谢谢!