idea创建Springboot多模块项目(聚合项目)
作者:清风凌雪
文章详细介绍了如何在idea创建Springboot多模块项目(聚合项目),包括创建父工程和子工程、编辑pom.xml文件、编写代码和测试,还介绍了如何处理Maven视图中的层级关系,并展示了如何同时启动多个子项目
1. 创建父工程
1.1 创建一个新项目
1.1.1 方式一
打开 New Project --> Maven Archetype
1.1.2 方式二
或者 New Project -->New project
新版本idea是 New Project -->Java
1.2 编辑父项目pom.xml文件信息
<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 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- 项目基本信息:这里作为聚合工程的父工程 --> <modelVersion>4.0.0</modelVersion> <groupId>com.qfx</groupId> <artifactId>springboot-parentProject</artifactId> <!-- packaging要设置为pom --> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>springboot-parentProject</name> <description>这是一个基于Maven的SpringBoot聚合项目父工程示例</description> <!-- 继承说明:设置父类,整合第三方常用框架依赖信息(各种依赖信息),这里继承SpringBoot提供的父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> <relativePath /> <!-- lookup parent from repository --> </parent> <!-- 设置公共参数 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!-- Maven install 时,测试环境@Test中如果有中文输出是乱码,加上这句话试试 --> <argLine>-Dfile.encoding=UTF-8</argLine> </properties> <dependencies> <!-- 1.引入springboot核心包,整合SpringMVC Web组件,包含了spring-boot-starter --> <!-- 实现原理:Maven依赖继承关系,相当于把第三方常用Maven依赖信息,在parent项目中已经封装好了 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 2.引入SpringBoot测试场景启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <!-- 指定war包或jar包名称,以此处为准,否则会带上版本号 --> <finalName>${project.name}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.3 删除多余文件
删除多余的文件,仅保留.idea、.gitignore和pom.xml文件即可
项目结构如下:
2. 创建子工程
2.1 创建一个新项目
选中父项目,右键 --> New -->Module...
2.1.1 方式一
选择Maven Archetype
2.1.1 方式二
选择 New Module
新版idea选择New Module下面的Java
项目结构如下:
2.2 查看父项目的pom.xml
可以看到父项目的pom.xml文件中新增了一个<modules></modules>模块,里面已经引用了刚刚创建的子项目
2.3 编写子项目pom.xml文件信息
<"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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- 项目基本信息:这里作为聚合工程的子工程 --> <modelVersion>4.0.0</modelVersion> <artifactId>springboot-child01</artifactId> <!-- 打包方式设置为jar,默认jar(可不设置) --> <packaging>jar</packaging> <description>这是一个基于Maven的SpringBoot聚合项目子工程示例</description> <!-- 设置父类,,这里继承springboot-parentProject父工程 --> <parent> <groupId>com.qfx</groupId> <artifactId>springboot-parentProject</artifactId> <version>1.0-SNAPSHOT</version> </parent> </project>
2.4 Maven视图展示
如果右侧的Maven部分出现父项目和子项目同级的情况,如下图:
选中父项目 --> 右键 --> Unlink Maven Projects
--> Remove
--> Load Maven Project
可以看到层级可以正常显示了
3. 测试
3.1 创建子项目启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class RunAppChild01 { public static void main(String[] args) { SpringApplication.run(RunAppChild01.class, args); } }
3.2 创建子项目测试类
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("test01") public class TestController { @RequestMapping("hello") public String hello() { return "Hello world!"; } }
3.3 编译项目
点击父项目的install,如果有很多子项目,就可以省去一个一个编译的问题
3.4 测试子项目
启动子项目,然后访问刚刚编写的Controller请求
4. 扩展
- 重复第二步"创建子工程",可以创建多个子项目
- 想要同时启动多个子项目,需要保证每个子项目的端口不一样,否则启动会报端口冲突的错误
5.总结
文章详细介绍了如何在idea创建Springboot多模块项目(聚合项目),包括创建父工程和子工程、编辑pom.xml文件、编写代码和测试,还介绍了如何处理Maven视图中的层级关系,并展示了如何同时启动多个子项目。
到此这篇关于idea创建Springboot多模块项目(聚合项目)的文章就介绍到这了,更多相关idea创建Springboot聚合项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!