VOL 190
30
2020-12
今天距2021年1天
这是ITester软件测试小栈第190次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信交流群”、“内推群”一起进群打怪。
本文3862字,阅读约需11分钟
在上一篇Java接口自动化测试系列文章:Java接口自动化之IDEA介绍、永久激活及常用快捷键,主要介绍IDEA优点、如何激活idea工具以及在日常开发中我们常用的快捷键。
以下主要介绍Maven特点、安装配置及Maven仓库。
一
Maven介绍
1
什么是maven?
Maven
是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),反映在配置中,就是一个 pom.xml 文件。是一组标准集合,一个项目的生命周期、一个依赖管理系统,另外还包括定义在项目生命周期阶段的插件(plugin)以及目标(goal)。
当我们使用 Maven 的使用,通过一个自定义的项目对象模型,pom.xml 来详细描述我们自己的项目。Maven 中的两大核心:
依赖管理:对 jar 的统一管理(Maven 提供了一个 Maven 的中央仓库,https://mvnrepository.com/,当我们在项目中添加完依赖之后,Maven 会自动去中央仓库下载相关的依赖,并且解决依赖问题)
项目构建:对项目进行编译、测试、打包、部署、上传到私服等。
2
为什么使用maven?
由于Java
的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱动,等等,都是以 jar 包的形式出现的,jar 包之间会有关联,在使用一个依赖之前,还需要确定这个依赖所依赖的其他依赖,所以,当项目比较大的时候,依赖管理会变得非常麻烦臃肿,这是 Maven 解决的第一个问题。
Maven 还可以处理多模块项目。简单的项目,单模块分包处理即可,如果项目比较复杂,要做成多模块项目,例如一个电商项目有订单模块、会员模块、商品模块、支付模块等等。一般来说,多模块项目,每一个模块无法独立运行,要多个模块合在一起,项目才可以运行,这个时候,借助 Maven 工具,可以实现项目的一键打包。
3
maven有什么特点?
maven的特点如下:
项目设置遵循统一的规则。
任意工程中共享。
依赖管理包括自动更新。
一个庞大且不断增长的库。
可扩展,能够轻松编写 Java 或脚本语言的插件。
只需很少或不需要额外配置即可即时访问新功能。
基于模型的构建 :Maven能够将任意数量的项目构建到预定义的输出类型中,如 JAR,WAR 或基于项目元数据的分发,而不需要在大多数情况下执行任何脚本。
项目信息的一致性站点:使用与构建过程相同的元数据,Maven 能够生成一个网站或PDF,包括您要添加的任何文档,并添加到关于项目开发状态的标准报告中。
发布管理和发布单独的输出 :Maven 将不需要额外的配置,就可以与源代码管理系统(如 Subversion 或 Git)集成,并可以基于某个标签管理项目的发布。它也可以将其发布到分发位置供其他项目使用。Maven 能够发布单独的输出,如 JAR,包含其他依赖和文档的归档,或者作为源代码发布。
向后兼容性 :您可以很轻松的从旧版本 Maven 的多个模块移植到 Maven 3 中。
子项目使用父项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号,
并行构建 :编译的速度能普遍提高20 - 50 %。
更好的错误报告:Maven 改进了错误报告,它为您提供了 Maven wiki 页面的链接,您可以点击链接查看错误的完整描述。
二
Maven安装配置
1
准备工作
Maven是Java 项目,因此必须先安装 JDK。检查是否已经安装jdk,使用命令:java -version
2
maven下载
官方下载传送门:
http://maven.apache.org/download.cgi
根据需要,选择操作系统所对应的maven进行下载。
3
maven安装配置
①下载完成后,解压后目录如下:
②配置maven环境变量。新建系统变量:
变量名:MAVEN_HOME
变量值:C:\ruanjian\maven\apache-maven-3.6.3
在path里新增环境变量:
%MAVEN_HOME%\bin
cmd打开dos窗口,输入mvn -v,检查maven是否配置成功。
三
Maven仓库
1
什么是maven仓库?
在Maven的术语中,仓库是一个位置(place
),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工程指定的文件。
2
为什么使用maven仓库?
没有Maven之前,我们项目依赖的包,会下载下来,统一放到对应项目的lib目录下。同一个包,比如Spring框架的包,项目A要使用,就拷贝一份到项目A的lib目录下;项目B也要使用,那就再拷贝一份到项目B的目录下去。这样下去,你会发现同样的依赖包,需要拷贝N份,这样不仅造成了磁盘空间的浪费,而且也难于统一管理。
有了Maven,基于Maven的坐标机制
,任何Maven项目使用任何一个构件的方式都是完全相同的。在此基础上,Maven可以在某个位置统一存储所有Maven项目共享的包,而这个统一存放依赖包的位置就是仓库。说白了,Maven仓库就是存放依赖包的地方。
3
maven仓库类型
Maven 仓库有三种类型:
本地(local)
中央(central)
远程(remote)
①本地仓库
Maven本地仓库是机器上的一个文件夹,它在你第一次运行任何 maven 命令的时候创建。
Maven本地仓库保存你的工程的所有依赖(library jar、plugin jar 等)。当你运行一次 Maven 构建,Maven会自动下载所有依赖的 jar 文件到本地仓库中。它避免了每次构建时都引用存放在远程机器上的依赖文件。
本地仓库默认位置在 当前用户名\.m2\repository,当你运行Maven命令,Maven将下载依赖的文件到你指定的路径中。
可以自定义本地仓库位置的,在 conf/settings.xml 中自定义本地仓库位置:
② 中央仓库
Maven中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
中央仓库的关键概念:
这个仓库由 Maven 社区管理。
不需要配置。
需要通过网络才能访问。
要浏览中央仓库的内容,maven 社区提供了一个 URL:
http://search.maven.org/#browse
使用这个仓库,开发人员可以搜索所有可以获取的代码库。比如要使用testng框架,那么在页面搜索testng。
复制依赖即可:
注意:由于默认的中央仓库下载较慢,因此可以将仓库地址改为阿里巴巴的仓库地址,修改conf/settings.xml文件,保存。
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
如下所示:
③ 远程仓库
如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库
的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。比如,在pom.xml中申明依赖,Maven 将从远程仓库中下载该 pom.xml 中声明的所依赖的文件。
既然存在3个仓库,那么jar包如何查找呢?maven多仓库查找依赖的顺序大致如下:
在本地仓库中寻找,如果没有则进入下一步;
在全局配置的私服仓库(settings.xml中配置的并有激活)中寻找,如果没有则进入下一步;
在项目自身配置的私服仓库(pom.xml)中寻找,如果没有则进入下一步;
在中央仓库中寻找,如果没有则终止寻找。
以上
That‘s all
更多系列文章
敬请期待
ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。
ITester软件测试小栈
往期内容宠幸
2.Python接口自动化-接口基础(二)
3.Python接口自动化-requests模块之get请求
4.Python接口自动化-requests模块之post请求
5.Python接口自动化之cookie、session应用
想获取更多最新干货内容
快来星标 置顶 关注我
每周一、三、五 08:30见
<< 向右滑动查看下一张图片 >>
后台 回复"资源"取干货
回复"微信群"一起打怪升级
个人微信:Cc2015123
添加请注明来意 :)
真爱四连,2021年再见~