手把手从0开始SpringBoot多模块项目搭建

最近起个小项目,用多模块搭建一下,顺便记录分享

1.创建父工程

通过Spring Lnitalizer创建,
我这里使用的是 springboot 2.7.3 + jdk11
手把手从0开始SpringBoot多模块项目搭建_第1张图片手把手从0开始SpringBoot多模块项目搭建_第2张图片
创建好后删除刚创建工程里不需要的文件, 只保留:.idea 文件夹 、项目 pom 文件、以及一个 *.iml 文件
手把手从0开始SpringBoot多模块项目搭建_第3张图片

手把手从0开始SpringBoot多模块项目搭建_第4张图片

2.创建子模块

手把手从0开始SpringBoot多模块项目搭建_第5张图片
我们创建 archives_common,archives_web,archives_biz,archives_manage 4个模块
手把手从0开始SpringBoot多模块项目搭建_第6张图片

手把手从0开始SpringBoot多模块项目搭建_第7张图片
删除多余目录和文件,每一个模块只保留src下的java路径,pom.xml文件,即可,如下图
手把手从0开始SpringBoot多模块项目搭建_第8张图片
对于 src 里的内容,只保留 archives_web 的启动类和配置文件,其他子模块的的启动类和配置文件都删除
手把手从0开始SpringBoot多模块项目搭建_第9张图片

编辑父工程的pom.xml文件

将父工程 pom.xml 文件修改成如下内容,里面声明该父工程包含的子模块,同时抽取统一的配置信息和依赖版本控制,这样可以方便子 pom 直接引用,简化子 pom 的配置

1、多模块项目中,父模块打包类型必须是 pom。
2、因为开发框架是 spring boot,父模块默认继承 spring-boot-starter-parent,因此可以删除 spring-boot-starter 和 spring-boot-starter-test 依赖


<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.0modelVersion>

    <groupId>com.ttgroupId>
    <artifactId>archivesartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>archivesname>
    <description>Demo project for Spring Bootdescription>
    
    <packaging>pompackaging>

    
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.7.3version>
        <relativePath/> 
    parent>

    <properties>
        <java.version>11java.version>
    properties>

    
    <modules>
        <module>archives_bizmodule>
        <module>archives_managemodule>
        <module>archives_commonmodule>
        <module>archives_webmodule>
    modules>
   
  <dependencyManagement>
    <dependencies>
        
        
            
            
        

        
            
            
            
        
        <dependency>
            <groupId>com.ttgroupId>
            <artifactId>archives_webartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>
        <dependency>
            <groupId>com.ttgroupId>
            <artifactId>archives_bizartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>
        <dependency>
            <groupId>com.ttgroupId>
            <artifactId>archives_commonartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>
        <dependency>
            <groupId>com.ttgroupId>
            <artifactId>archives_manageartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>

    dependencies>
  <dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

project>

编辑子模块pom.xml

子模块的配置信息会继承父模块的

archives_common的pom文件如下


<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.0modelVersion>
    
    <parent>
        <groupId>com.ttgroupId>
        <artifactId>archivesartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <relativePath/> 
    parent>
    <groupId>com.ttgroupId>
    <artifactId>archives_commonartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>archives_commonname>
    <description>Demo project for Spring Bootdescription>
    <properties>
        <java.version>11java.version>
    properties>
    <dependencies>
        
            
            
        

        
            
            
            
        
    dependencies>

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

project>

archives_manage archives_biz 子模块需要引入 archives_common 子模块 pom文件如下


<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.0modelVersion>
    
    <parent>
        <groupId>com.ttgroupId>
        <artifactId>archivesartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <relativePath/> 
    parent>
    <groupId>com.ttgroupId>
    <artifactId>archives_bizartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>archives_bizname>
    <description>Demo project for Spring Bootdescription>
    <properties>
        <java.version>11java.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>com.ttgroupId>
            <artifactId>archives_commonartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>
    dependencies>

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

project>

archives_web为启动模块 需要添加 spring-boot-starter-web 依赖


<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.0modelVersion>
    <parent>
        <groupId>com.ttgroupId>
        <artifactId>archivesartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <relativePath/> 
    parent>
    <groupId>com.ttgroupId>
    <artifactId>archives_webartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>archives_webname>
    <description>Demo project for Spring Bootdescription>
    <properties>
        <java.version>11java.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    dependencies>

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

project>

移动项目启动类所在包

指定 SpringBootApplication的 scanBasePackages 或者 将启动类往外提一层,确保组件会被扫描到
目前项目启动类 ArchivesWebApplication在 com.tt.archives_web 包下面,我们需要将其移动移动到 com.tt 包下
手把手从0开始SpringBoot多模块项目搭建_第10张图片
手把手从0开始SpringBoot多模块项目搭建_第11张图片
启动启动类
手把手从0开始SpringBoot多模块项目搭建_第12张图片

至此,多模块工程创建完毕。

你可能感兴趣的:(架构设计,spring,boot,后端,java)