您的位置:

SpringBoot创建多模块项目

一、简介

SpringBoot是一个高效的工具,它能够快速便捷地创建一个整体完整的项目,而且能够与各种其他的框架集成。对于一个大型的项目来说,一个整体完整的项目可能并不是最好的方案。为了解决这个问题,我们可以采用多模块的方式进行项目开发,这样既能够实现独立部署,也能够进一步提高开发效率。

二、创建多模块项目

在创建多模块项目之前,需要明确一个概念,就是模块(module)。模块是指一组代码和资源的集合,它可以单独编译、测试、打包和部署。在Java中,模块通常使用Maven或Gradle管理。在SpringBoot中,我们也可以使用Maven或Gradle来维护多模块项目。接下来,我们一步一步进行多模块项目的创建。

1. 创建父项目

在创建多模块项目的时候,通常需要先创建一个父项目(pom项目),这个父项目的作用是维护所有子模块的公共依赖,比如SpringBoot版本号、数据库连接池等等。创建父项目的方式略有不同,因为这个项目没有实际功能,仅仅是为了维护所有子模块的公共依赖,所以代码极简。

<?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">

    <groupId>org.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

	<modules>
		<module>child1</module>
		<module>child2</module>
	</modules>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-parent</artifactId>
			<version>2.4.4</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>

</project>

2. 创建子模块

在创建子模块之前,需要再次强调一下,每个子模块都是一个独立、可编译、可测试、可打包、可部署的Maven项目,与其他模块相互独立。这里我们以两个子模块为例,分别命名为child1和child2。在子模块中,我们需要维护自己的业务逻辑和依赖,而且需要关注父模块是否继承父模块相应的依赖。

子模块1:child1

在child1的目录下创建一个Maven项目,名字为child1,并在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>
        <groupId>org.example</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>org.example</groupId>
    <artifactId>child1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

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

</project>

子模块2:child2

同理,在child2的目录下创建一个Maven项目,名字为child2,并在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>
        <groupId>org.example</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>org.example</groupId>
    <artifactId>child2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc10</artifactId>
            <version>19.3.0.0</version>
        </dependency>
    </dependencies>

</project>

三、集成子模块

在创建完父模块和子模块后,下一步就是要将所有模块集成起来。在父模块的pom.xml中添加子模块,关键代码如下:

<modules>
    <module>child1</module>
    <module>child2</module>
</modules>

完成后你将会看到一个与父项目名称相同的顶级文件夹,该文件夹名就是顶级父项目的名称,这个文件夹存储着所有子模块。在此文件夹中打开命令提示符或终端,输入以下命令:

mvn clean install

完整代码请参见:https://github.com/xiaomuworld/springboot-multimodule-demo