Maven 基础知识总结笔记 (二)(1)

中间可能涉及到一个library是1.5的情况,这个需要自己设置,也可以直接maven的setting.xml文件设置。

在这里插入图片描述

1.3 eclipse 使用Maven 命令



运行也不难,右键run as 就有一系列命令,但是里面灭有compile编译等等命令。

在这里插入图片描述

这时候需要点击Maven build…来创建一个compile命令。

在这里插入图片描述

2. Maven 聚合

=========================================================================


如果多个模块之间存在依赖,如果我们更新修改其中的一个模块(例如:该模块修改后执行了maven install命令),那么肯定会影响其他模块。

那么就设定一个模块,来管理这些模块:(变动一个,伴随着其他模块也要变动,这种形式就叫做聚合)

在这里插入图片描述

聚合作用:用于快速构建maven工程,一次性构建多个项目/模块。


为了实现上面这种聚合方式:

第一:我们创建一个bom项目,将项目的src删除,并且配置pom.xml的packaging和modules标签。

<?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”>

4.0.0

org.example

boss

1.0-SNAPSHOT

pom

…/java_test01

…/java_test02

…/WebAppTest01

在这里插入图片描述

这是我们可以看到boss工程,后面会有root表示根的意思。

在这里插入图片描述


完成上面,我们就可以测试了,执行以下boss的compile文件看看其他项目会不会统一执行。

在这里插入图片描述

这时候会发现,他们都进行了compile编译,生成了target文件:

在这里插入图片描述

在这里插入图片描述


可以看到,我们在编译或安装打包时,它是有顺序的,顺序看依赖的顺序,如果依赖非常杂乱,还需要跟pom.xml的配置有关了。

在这里插入图片描述


最后说一下pom.xml下的packaging标签。

该标签不设置默认是jar。

jar是java项目,war是web项目,而pom是专门用来Maven聚合的!

在这里插入图片描述

3. Maven 继承

=========================================================================


在这里插入图片描述

在这里插入图片描述


想要做到上面的效果就要用到继承。

通过使用parent标签和dependencyManagement标签,就是父工程来统一管理子工程:

在这里插入图片描述

之后,我们在每一个子工程中定义parent标签,确定父工程位置。

在这里插入图片描述

relativePath(相对位置)标签的作用就是方便找到父类工程。

**这样,我们就可以统一管理各个项目的依赖版本了。

对于后面项目的依赖我们就不用指定版本就可以了**

在这里插入图片描述


除了依赖,还可以统一管理插件,使用pluginManagement标签。

在这里插入图片描述


总结,我们就只在父类配置好了,到了子类不用在配置版本之类的,从而达到一个依赖版本和插件版本统一的效果。

因此,这个继承就一个依赖和插件的父子工程的过程。

此外,父类的一些其他配置信息也是可以继承到子类的:

在这里插入图片描述


聚合和继承是可以放到一个工程中,也可以分开做两个模块,不影响。一般我都放到一个工程,这个工程也就是设计工程,不写东西,仅仅是来统一管理的。

4. Maven 属性

=========================================================================

4.1 自定义Maven属性

===========================================================================


这里的属性,其实和java中的变量差不多,通过修改一个属性变量,进而调用该属性的变量都会被赋予修改成的值,大体意思效果就是这样。

Maven使用properties标签来定义属性。

在这里插入图片描述

一般自己属性标签起名字的格式差不多像这样:

<spring.version></spring.version>

4.2 Maven 属性的分类



Maven 属性的分类:

  • 自定义属性

  • 内置属性

  • Setting属性

  • Java系统属性

  • 环境变量属性


自定义属性:

自定义属性是用的最多的,等同于java中的变量,方便统一维护。


内置属性:

其实在maven项目中,就有很多内置的属性。

${version}属性:就是调用当前工程的version。

${basedir}属性:获取项目根目录路径。

其实它们前面是有个project,project是可以省略的。


Setting属性:

使用maven配置文件setting.xml中的标签属性,用于动态配置。

例如:${settings.localRepository}


Java系统属性和环境变量属性:

读取Java系统属性:

例如:${user.home}

当然还有系统查询的方式:

例如:mvn help:system

在这里插入图片描述

通过mvn help:system命令,得到两种属性:系统属性和环境变量属性。

下面这个就是系统属性:

在这里插入图片描述

环境变量属性:

例如:${env.JAVA_HOME}

在这里插入图片描述

5. Maven 版本管理

===========================================================================


SNAPSHOT(快照版本):

  • 快照版本就算是测试阶段的版本。

  • 快照版本会随着开发的进展不断更新。

RELEASE(发布版本):

  • 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本成为发布版本。

上面这两种是比较常用的,也有些企业起的名字不同,有rc,m等等一系列,这倒不用在意。

在这里插入图片描述


工程版本号的约定:

在这里插入图片描述

6. Maven 外部资源加载 属性值

=================================================================================


我们设置jdbc的一些信息时,常存储在jdbc.properties里面:

在这里插入图片描述

但是我们想也让这里面的值,使用属性值来代替,也是可以的(也就是想让外部文件也使用当前pom.xml设置的属性值):

在这里插入图片描述

这就分为:配置资源文件对应的属性和测试资源对应的属性,也就是main下的resources和test下的resources。


配置资源文件对应的属性(使用resources标签):

第一步:我们设定好属性值:

在这里插入图片描述

在这里插入图片描述

第二步:在build标签内设定resources标签,负责指定文件路径目录:

在这里插入图片描述

filtering属性作用:开启加载pom属性过滤功能,就是设置为true才能被加载到。

最后,我们install一下,在jar包中查看jdbc.properties是否配置成功了。

在这里插入图片描述

最后,我们可以通过内置属性,来修改一下:

在这里插入图片描述


配置测试资源的对应信息(使用testResources):

其实本质上没啥区别,就是标签换成了testResources 和 testResource,注意路径要改成test,仅此而已。

在这里插入图片描述

7. Maven 多环境开发配置(多环境兼容)

=====================================================================================


我们所建成的项目,在当前能够运行成功,但如果放置到服务器上就有可能环境不兼容等,换句话说,每次放到新服务器都要配置一下环境值等等。

定义这种多环境开发,Maven也是可能做的,还是去聚合工程配置pom.xml文件。在这里插入图片描述

光配置好肯定不行,我们在运行时,还要指定我们运行哪一个环境的id,因此执行命令的时候需要我们,添加参数!

因此,我们执行mvn指令时,要添加-p:

例如:mvn install -P [指定的环境id]

在这里插入图片描述


上面还可以通过使用 activation 和 activeByDefault 默认方式来启动环境配置:

在这里插入图片描述

8. Maven 跳过测试

===========================================================================


真正开发中,测试是不能跳过的!

在某些特殊情况下,我们通过跳过来检查那一部分出现问题或者来节约时间等等。


方案一:

idea的跳过测试:

在这里插入图片描述


方案二:

通过命令来跳过测试环节:

mvn install -D skipTests

-D的作用是指定Java全局属性。


方案三:(针对插件而言)

我们设置插件后,可以在configuration标签内设置skipTests标签,来决定该插件测试时跳不跳过。

在这里插入图片描述


最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

-D的作用是指定Java全局属性。


方案三:(针对插件而言)

我们设置插件后,可以在configuration标签内设置skipTests标签,来决定该插件测试时跳不跳过。

在这里插入图片描述


最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
[外链图片转存中…(img-9c1ni11B-1714417050535)]

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

[外链图片转存中…(img-qupJRg0b-1714417050535)]

最新整理大厂面试文档

[外链图片转存中…(img-sHsbQqQc-1714417050536)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值