IDEA 中搭建 Spring Boot Maven 多模块项目 (父SpringBoot+子Maven)

第1步:新建一个SpringBoot 项目 作为 父工程

[Ref] 新建一个SpringBoot项目

删除无用的 .mvn 目录、 src 目录、 mvnwmvnw.cmd 文件,最终只留 .gitignorepom.xml

第2步:创建 子maven模块


第3步:整理 父 pom 文件

① 删除 dependencies 标签及其中的 spring-boot-starterspring-boot-starter-test 依赖,因为 Spring Boot 提供的父工程已包含,并且父 pom 原则上都是通过 dependencyManagement 标签管理依赖包。

② 删除 build 标签及其中的所有内容,spring-boot-maven-plugin 插件作用是打一个可运行的包,多模块项目仅仅需要在 入口类所在的模块 添加打包插件,这里父模块不需要打包运行。而且该插件已被包含在 Spring Boot 提供的父工程中,这里删掉即可。

③ 最后整理父 pom 文件中的其余内容,按其代表含义归类,整理结果如下:

xml 复制代码
<?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>
    <packaging>pom</packaging>
	<name>ParentSpringBoot</name>
	<description>ParentSpringBoot</description>

	<!-- 项目说明:这里作为聚合工程的父工程 -->
	<groupId>com.example</groupId>
	<artifactId>ParentSpringBoot</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<!-- 继承说明:这里继承Spring Boot提供的父工程 -->
    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.2.1</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!-- 模块说明:这里声明多个子模块 -->
	<modules>
		<module>module1</module>
	</modules>

	<!-- 属性说明 -->
	<properties>
		<java.version>17</java.version>
	</properties>
</project>

第4步:添加入口类

选择某个module添加入口类

xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

第5步:配置模块间的依赖关系

xml 复制代码
<properties>
    <java.version>17</java.version>
    <module1.version>0.0.1-SNAPSHOT</module1.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>module1</artifactId>
            <version>${module1.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

第6步:启动SonApplication

参考

IDEA 中搭建 Spring Boot Maven 多模块项目

相关推荐
初次攀爬者17 小时前
Kafka 基础介绍
spring boot·kafka·消息队列
用户83071968408217 小时前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解19 小时前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端
初次攀爬者2 天前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺2 天前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart2 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
Nyarlathotep01132 天前
SpringBoot Starter的用法以及原理
java·spring boot
dkbnull3 天前
深入理解Spring两大特性:IoC和AOP
spring boot
洋洋技术笔记3 天前
Spring Boot条件注解详解
java·spring boot
洋洋技术笔记4 天前
Spring Boot配置管理最佳实践
spring boot