SpringBoot 多模块搭建

原创
2021/07/01 23:47
阅读数 714

Maven 多模块项目通常由一个父模块和若干个子模块构成,每个模块都对应着一个 pom.xml。它们之间通过继承和聚合(也称作多模块)相互关联。多模块适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。

这里我们使用的工具是:IDEA

 

一、创建父工程

打开IDEA,点击新建,选择Maven项目。创建父类工程 piao。

因为是父类工程,所以我们需要把多余的文件删除,只保留pom文件。

删除后的工程目录:

 

二、创建二个子工程

这里我们创建二个子工程,分别是piao-common,piao-system 两个工程。

2.1、创建 piao-common 子工程。

右击父工程,点击新建模块。如下图:

我们先创建piao-common工程,该工程是工具类,所以我们继续选择maven工程。

下一步,直到完成。如下图:

 

2.2、创建 piao-system 平台层工程。

右击父工程,点击新建模块。如下图:

因为 piao-system 是SpringBoot 项目,所以我们选择创建Spring Initializr。

下面的步骤就跟我们创建SpringBoot项目的步骤一致。

现在我们删除多余的目录。如果大家用的是Git版本控制器,gitignore也可以放到父工程的目录中去。这里我们就删掉。

最终目录如下:

 

三、所有工程pom文件

3.1、piao 父工程文件如下:

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>piao</artifactId>
    <!-- 父模块打包类型必须为pom -->
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <!-- parent指明继承关系,给出被继承的父项目的具体信息-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/>
    </parent>

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

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
        </dependency>
    </dependencies>

    <!-- 版本说明:这里统一管理依赖的版本号 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.example</groupId>
                <artifactId>piao-common</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.example</groupId>
                <artifactId>piao-system</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

</project>

多模块项目中,父模块打包类型必须是 pom。

 

3.2、piao-common 子工程文件如下:

<?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>piao</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>piao-common</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
    
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

 

3.3、piao-system 子工程文件如下:

<?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>
        <artifactId>piao</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>piao-system</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>piao-system</name>
    <description>Demo project for Spring Boot</description>

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

        <dependency>
            <groupId>org.example</groupId>
            <artifactId>piao-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

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

</project>

 

四、编写代码

我们在piao-common工程创建一个util包。编写一PiaoUtil工具类。如下图:

在piao-system编写一个控制器,用于访问测试。如下图:

因为我们在piao-system工程里面添加piao-common包的依赖。所以我们的控制可以调用piao-common的工具类。

 

五、启动项目,验证结果

我们启动piao-system模块。这个一个SpringBoot项目。

访问结果为:

最后我们看到成功调用到了piao-common的工具类。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部