0
点赞
收藏
分享

微信扫一扫

Spring Boot | 手动创建多模块项目

前言

当我们的单体工程功能越来越复杂、代码量越来越多时,通过合理地模块拆分,可以提高代码的复用性,使项目的结构更加清晰、明确,方便后期项目的维护和管理。

创建父工程

笔者汪小成并没有选择使用Spring Initializr或者IDEA快速创建项目,而是选择最原始地手动创建项目。因为父工程主要作用是统一管理Maven依赖版本,只需要有一个pom.xml文件即可。使用Spring Initializr或者IDEA创建项目时自动生成的其它文件或文件夹(比如:src)都还要删除。

1、创建父工程文件夹

$ mkdir spring-boot-demos && cd spring-boot-demos

2、创建pom.xml文件

$ touch pom.xml

3、编辑pom.xml文件

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>
<groupId>cn.ddcherry</groupId>
<artifactId>spring-boot-demos</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-demos</name>
<!-- 父工程的打包方式必须是pom -->
<packaging>pom</packaging>
<description>spring-boot-demos</description>

<properties>
<java.version>1.8</java.version>
<lombok.version>1.18.24</lombok.version>
<spring-boot.version>2.7.7</spring-boot.version>
</properties>

<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>

<!-- 这里统一管理所有子工程的依赖的版本号 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>

</project>

说明:

  • 父工程pom.xml文件中<packaging>节点的值必须为pom

pom.xml文件中可以看出笔者汪小成选择的JDK版本为1.8,Spring Boot的版本为2.7.7

引入Spring Boot 相关Maven依赖,笔者汪小成并没有选择继承spring-boot-starter-parent的方式,而是选择了在<dependencyManagement>节点下引入spring-boot-dependencies的方式。

使用spring-boot-dependencies引入Spring Boot 相关Maven依赖,可以解决Maven项目单继承的问题。这样我们就可以在引入Spring Boot 相关Maven依赖的同时继承其他父工程。

4、使用IDEA打开父工程

File --> Open... --> 选择父工程文件夹 --> OK

image.png

父工程至此也就创建完成啦。

创建子工程

1、在父工程上单击鼠标右键,选择New --> Moduleimage.png

2、在New Module对话框中,选择Maven --> 点击Next按钮; image-20230112131144607

3、输入子工程的Name --> 点击Finish按钮。

说明:笔者汪小成本地环境里已经创建了子工程01.spring-boot-hello了,截图中的Name不能再输入01.spring-boot-hello了。

image-20230112131455876

子工程创建成功后,父工程的pom.xml文件的<modules>节点下会自动增加一个<module>

<modules>
<module>01.spring-boot-hello</module>
</modules>

4、编辑子工程pom.xml文件

子工程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 http://maven.apache.org/xsd/maven-4.0.0.xsd>

<parent>
<artifactId>spring-boot-demos</artifactId>
<groupId>cn.ddcherry</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>01.spring-boot-hello</artifactId>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>

</project>

至此子模块也创建成功了。现在就可以着手在子工程中编码了。

Spring Boot系列文章

  • Spring Boot | 整合Swagger、Knife4j自动生成API文档
举报

相关推荐

0 条评论