springboot网站开发01-如何搭建Maven类型父子嵌套结构项目

springboot网站开发01-如何搭建Maven类型父子嵌套结构项目!众所周知,实际上,在真正的公司项目开发中为了让代码实现更多的复用,提升项目的开发效率,节省开发的成本(人力成本较高,代码可以尽量复用),很多都会采取父子嵌套的结构搭建Maven项目。下面为大家展示一下,如何搭建一个基础的父子嵌套Maven项目。


首先,我们需要创建一个父级别的Maven工程。里面的重点是:你只需要配置好你的子模块(子项目)的名字即可。当然了,如果你不提前配置,直接创建子模块,也是可以的,它会自动识别到,自动追加配置参数的。很方便。

<?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>blog</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>blog-framework</module>
        <module>blog-admin</module>
        <module>hnseo321-blog</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--fastjson依赖-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.33</version>
            </dependency>
            <!--jwt依赖-->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>0.9.0</version>
            </dependency>
            <!--mybatisPlus依赖-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.3</version>
            </dependency>

            <!--阿里云OSS-->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>3.10.2</version>
            </dependency>


            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>3.0.5</version>
            </dependency>

            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
                <version>3.0.9</version>
            </dependency>
        </dependencies>


    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

以上信息,就是创建根项目(父级根项目的pom.xml内容)

里面有2个地方需要注意:

第一个注意点:

如图,这里面有一个《modules》标签,这个标签就是可以告诉代码,我是一个根,你要帮我管理我的子集合模块。

里面的《module》都是每一个子模块(子项目)的名字。

第二个注意点:

 

这个标签,是告诉代码,你需要帮我管理子模块的导入,采用import的方式导入子模块内容,子模块类型也是pom格式配置的。


 如下图所示,我这个就是其中一个子模块,名字叫做hnseo321-blog。

这是它自己的pom.xml信息,里面可以看见,多了标签《parent》,父标签,里面写清楚了,它隶属于谁,谁是它的父项目。

下面那个《artifactId》标签,写的是它自己本身的名字。

里面有一个点需要注意:

它作为一个前端项目(前端用户可以看见交互的webUI界面,调用的业务处理接口,都来自这个子项目啊。)它肯定少不了和数据库查询互动的,它里面还会调用一个公共的子模块(blog-framework);

这个blog-framework子模块,和hnseo321-blog是同一个级别的,都是隶属于父模块的。同一级别。

这样我们就可以省去写两遍代码了,因为我们的项目,还有一个子模块叫后端模块,负责后端管理的业务处理逻辑接口服务。(blog-admin).在后端处理接口项目中,也会调用到这一批CUDA的代码,为了实现代码复用,我们就把CUDA的代码封装到了一个公共子模块里,取个名字叫:blog-framework.

 

下面给大家看看,在子模块(后端模块)li也是同样的方式,调用了公共模块(blog-framework)

 

如图,这个内容就是后端模块(blog-admin)的pom.xml信息,和前端模块(hnseo321-blog)的配置信息基本上是一样的,都带有一个parent标签(声明自己隶属于谁),都有一个依赖项(告诉springboot框架,我需要依赖于哪个子模块的代码信息。)

下面给大家展示一下我的完整项目逻辑图:

 

如图,实际上,这个搭建过程很快,1-2分钟就能完成了,剩下的就是你的编码任务了。详细的内容后面会和大家陆续分享的。欢迎交流互动,springboot网站开发技术。 

祝您可以一次性成功创建属于自己的父子嵌套Maven项目结构。