IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Maven高级 -> 正文阅读

[Java知识库]Maven高级

Maven高级

一、分模块开发与设计

在一个SSM项目中,我们常见的模块有controler层、dao层、domain层、service层等等

但是也许不是每一层都是由固定一个人开发的,那么就需要用到maven来管理这些分开的模块

在这里插入图片描述


1、实现流程

当每一个模块开发好之后,我们需要使用maven的install指令,将其安装到本地仓库中

然后在需要引用该模块的模块的pom.xml文件中引入坐标

在这里插入图片描述

上图是一个模块开发候的坐标,也是引用的坐标

注意:

  1. 一定要先install安装到本地仓库。否则就算没有出错,到时候也不能用maven编译,会报错
  2. 每个模块只需要保留该模块需要的配置文件或者相关的类文件即可,不需要保留无用的文件
  3. 不同模块间的配置文件名称不可相同,因此命名配置文件的时候需要安装模块命名,可以有效避免重名
  4. 就ssm而言,修改配置文件web.xml配置文件加载spring环境的文件名称时,可以使用*统配,加载所有的applicationContext配置文件

二、聚合

为了避免多模块开发完成后,这当中某个模块进行了升级,然后导致其他模块的某些地方也要进行升级,我们就可以额外使用一个模块来同时管理开发完成的模块,使得当当中一个模块升级后,其他也要重新编译升级,这就叫聚合

也就是说聚合就是通过一个模块管理其他某些模块的构建,同时执行生命周期执行

在这里插入图片描述


1、实现流程

  1. 新建一个模块(这个模块不需要用src)
  2. 定义该工程用于构建管理
  3. 声明管理工程列表

在这里插入图片描述

注意:参与聚合操作的模块最终执行顺序与模块间的依赖有关,与配置顺序无关


三、继承

继承主要用于模块依赖关系的维护

可以防止每个模块开发的时候,使用某个依赖版本号不同,导致程序出现错误,因此可以额外添加一个模块,在这模块中声明使用的依赖的版本,后续子模块只需要声明依赖即可,不需要声明版本

在这里插入图片描述


1、实现流程

  1. 声明此处进行依赖管理(使用dependencyManagement标签)

    在这里插入图片描述

  1. 在子工程声明父工程(因为子工程的groupId和版本号需和父工程保持一致,因此子工程不再需要声明这两个)

    在这里插入图片描述

  1. 在父工程声明好的依赖版本,子工程不需要再声明

    在这里插入图片描述


四、继承与聚合

  • 作用
    • 聚合用于快速构建项目
    • 继承用于快速配置
  • 相同点
    • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
    • 聚合与继承均属于设计模块,并无实际模块内容
  • 不同点
    • 聚合是当前模块中配置关系,聚合可以感知参与聚合的模块有哪些
    • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

五、属性

pom文件通常会有很多依赖,当我们需要修改其中一个依赖的版本的时候,有些时候其他版本也需要修改,因此为了统一管理,防止修改的时候漏了某一个忘记修改,我们可以像JAVA一样自定义一个属性,当我们修改属性的值的时候,版本号也随之修改

在这里插入图片描述

  <!--自定义属性-->  
<properties>
    <spring.version>5.0.5.RELEASE</spring.version>
</properties>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
 </dependency>

除此之外,如果在其他模块的版本号需要和管理模块的版本号一样

则可能使用${version}来替换


六、版本管理

  • SNAPSHOT(快照版)
    • 项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
    • 快照版本会随着开发的进展不断更新 RELEASE(发布版本)
  • RELEASE(发布版本)
    • 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本

七、资源管理

Maven除了能管理自身的pom文件的一些版本号,还可以管理其他文件的一些属性

在这里插入图片描述


1、实现流程

  1. 自定义属性(这里以jdbc的url为例)

    在这里插入图片描述

  1. 配置资源文件对应的信息(filtering为开启对配置文件资源的加载过滤)

    在这里插入图片描述

  1. 相对应的jdbc配置文件替换成el表达式

    在这里插入图片描述

注意:

  • 如果有多个模块需要修改jdbc配置文件,可以将上述的ssm_dao修改为${prohect.basedir},则当前目录下所有模块都可以配置成功

八、多环境开发配置

在我们生成一个模块的时候,在开发环境是一个配置,在服务器又是另外一个配置,那么就要适应多种环境

在这里插入图片描述


1、实现流程

  1. 创建多环境
  2. 定义具体环境
  3. 定义具体环境的唯一值
  4. 定义环境中的专用属性值

注意:

<!--设置为默认使用-->
<activation>
	<activeByDefault>true</activeByDefault>
</activation>

在这里插入图片描述

如果没有设置默认环境,则使用不同环境的时候,用maven打包或者安装的时候使用不同参数(环境 ID)来代表不同的生成环境

在这里插入图片描述


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 23:36:51  更:2022-04-14 23:40:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:02:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码