我是靠谱客的博主 纯情高跟鞋,最近开发中收集的这篇文章主要介绍Maven聚合工程一、单体项目二、maven聚合工程是什么三、maven工程的搭建四、maven的模块复用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

maven是我们一款常用的工具,可以使用maven去maven的中央仓库下载我们需要的依赖,摒弃传统以jar包导入外部代码的方式。
其实,maven除了可以通过pom坐标的方式去引入依赖,我们还可以通过maven聚合工程的方式去实现模块的复用。

一、单体项目

我们传统的项目,一般后端采样MVC的架构,会分层,分为dao层,service成,controller层,文件的目录如下,我们把各个模块分类放在不同的包中。
在这里插入图片描述
在一般的单体项目中,这种分类的方式还是很好用的,但是这种方法有一个缺点,在一些微服务项目中,比如电商系统,系统可能有一个前台商城页面,还有一个后台的商家管理系统,这两个系统都涉及对Goods商品类的依赖。你想想,商品前台模块和后台模块是两个系统,但是他们都涉及对商品的操作,于是他们必须在两个系统中同时创建一个Goods商品类和商品类的dao,一旦商品类要发生修改,所有带有商品类的工程也要修改。

二、maven聚合工程是什么

maven为了解决这个问题,使用聚合工程这个概念,就是把多个系统需要依赖的类,不再是把它放在一个包里边,而是将它放在一个maven工程里,maven再把这个模块,部署到maven仓库,之后如果其他模块需要这个类,就只需要导入maven坐标,而不用再新建类了,如果类要发生改变,也只需要改动一次后,重新部署到maven仓库了。
在这里插入图片描述
maven聚合项目结构一般如下图所示,每个模块不再是一个包,而是一个个maven工程。
在这里插入图片描述

三、maven工程的搭建

1、创建父级工程

maven聚合工程中,每个模块都是一个个的maven工程,他们每个子maven工程,依赖在一个父工程下,所以先创建一个父工程。
在这里插入图片描述
在这里插入图片描述
项目创建好后,设置打包方式为pom
在这里插入图片描述

2、创建子工程common

跟父级工程一样不选择模板,创建mall-common,
创建子模块后,默认的打开方式为jar包,无需显示指定
在这里插入图片描述
在这里插入图片描述
创建好工程后,查看父级工程pom中是否存在子模块的配置项
在这里插入图片描述

3、安装创建common的方法,创建web,mapper,service

在这里插入图片描述

4、设置模块之间的相互依赖

现在虽然dao,service,web模块都有了,但是他们并不是在一个工程里边,他们属于不同的maven工程,类和类之间是无法直接相互调用的,我们需要配置模块之间的相互依赖
在mapper中的pom配置加上:

<dependencies>
        <dependency>
            <groupId>com.mall</groupId>
            <artifactId>mall-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

在service的pom加上:

<dependencies>
        <dependency>
            <groupId>com.mall</groupId>
            <artifactId>mall-mapper</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

在web层的pom加上:

<dependencies>
        <dependency>
            <groupId>com.mall</groupId>
            <artifactId>mall-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

他们的依赖关系链是

web
service
mapper
common

这样配置后,父级模块就能调用子级模块和子级的子级中定义的类了。

5springboot的基本配置

项目最终想要启动起来,还是需要配置springboot
【1】在父级pom中添加依赖

<!--配置springboot
       引入依赖parent,完成之后就是springboot工程了
       作用:加载了很多的依赖
    -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/>
    </parent>
    <!--设置资源属性-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <!--引入核心依赖-->
    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <!--排除springboot默认的日志依赖-->
        <exclusions>
            <exclusion>
                <groupId>org.springframeork.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
            <!--排除logback日志-->
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!--配置spring自带的web板块-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--配置解析xml-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
   </dependencies>

【2】application.properties
在web的resources下创建
在这里插入图片描述
在application.properties中添加配置端口:

#配置端口号
#配置服务器端口
server.port=8088
server.tomcat.uri-encoding=utf-8
server.max-http-header-size=80KB
server.servlet.context-path=/

【3】创建启动项application.java
在这里插入图片描述
【4】在web下创建controller测试类
在这里插入图片描述
访问接口
在这里插入图片描述

四、maven的模块复用

看的这里,maven工程已经搭建完毕了,但现在,对于这个工程而言,模块复用并没有体现出,但如果我们再建一个工程,这个工程和当前工程共用common模块的Goods类,来看看如何复用。
1、先创建Goods类
在这里插入图片描述
2、使用install把项目安装到本地仓库
在这里插入图片描述
3、在其他maven项目假如common坐标
在这里插入图片描述

4、使用Goods
在这里插入图片描述

最后

以上就是纯情高跟鞋为你收集整理的Maven聚合工程一、单体项目二、maven聚合工程是什么三、maven工程的搭建四、maven的模块复用的全部内容,希望文章能够帮你解决Maven聚合工程一、单体项目二、maven聚合工程是什么三、maven工程的搭建四、maven的模块复用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部