Maven核心总结

Maven核心总结

maven是什么

maven是apache软件基金会组织维护的一款自动化构建工具,用于java平台的项目构建和依赖管理。

一个项目构建包括我们从完成代码的编写,到编译后执行,并且启动服务器的过程。

Web工程编译过程

Maven核心总结_第1张图片

 

在实际项目中,我们需要整合第三放框架,java程序,jsp页面,静态资源,配置文件,各种jar包,,构建过程,就是我们把这个原料生产成一个可以运行的项目的过程。

 

构建过程的环节

Maven核心总结_第2张图片

 

其中的编译,打包,部署,测试,我们让他们自动完成,就是自动化构建。

 

 

 

 

 

 

 

 

 

Maven实现自动化构建的原理

Maven核心总结_第3张图片

 

 

 

 

Maven有什么用

如图,在项目构建过程中,我们不使用maven也可能完成一个项目。但是maven并不是可有可无的。

Maven核心总结_第4张图片

 

但是在实际开发过程中,我们在使用第三方jar包的时候,通常放进WEB-INF/lib目录下,1.节约空间   通常每次创建一个工程之后,不同工程之间存在大量冗余重复的的jar包。

使用maven之后,所有的工程在使用jar包时直接从本地仓库调用,所有jar包只有一份,节约存储空间。

 

2.jar包依赖关系   我们经常在引入某个jar包之后,发现项目出现问题,这是因为,某些jar包在使用的时候必须依赖于其他jar包,但是我们不可能能记住不同jar包之间的依赖关系,也不能一个一个去引入,使用maven之后,自动将jar包之间的依赖全部导入,不必了解详细的依赖关系。

 

3.获取合适第三方jar包  java开发过程中使用的jar包种类繁多,我们不可能在开发一个项目的时候去很多不同网站找寻某一个jar包,maven像是一个目录仓库,他把所有的jar包统一收集,我们时候的时候可以直接去maven的官网下载,不去分开去不同地方下载。

 

4.maven的模块依赖管理  在开发大型项目的时候,把一个项目分为多个不同模块,由不同人员管理,最终合并成完整的模块,在这个过程中,我们需要控制不同模块之间的相互调用和访问,使用maven把控下层模块可以被上层模块调用。

 

Maven如何用

Maven本地默认仓库是:~\.m2\repository

Maven约定的目录结构

Maven核心总结_第5张图片

 

在开发过程中,约定>配置>编码

 

Pom文件

Project Object Model:项目对象模型,把java工程的相关信息封装为对象作为便于操作的模型,是maven的核心配置。

 

Maven坐标介绍

 

 

 

查找jar包时

把三个gav连接起来去仓库查找,每级目录使用/分割

 

依赖

依赖除了上面的三个坐标之外还有个依赖的范围(一般省略)

Compile:编译范围依赖

Test  :测试范围依赖

Provided :部署范围依赖

有效性总结

 

依赖性的传递

我们在编写项目过程中会出现这种情况,当不同项目的依赖范围不同时候,出现不能调用的情况,这个时候修改 依赖关系可以解决

例如

Maven核心总结_第6张图片

 

 

依赖的排除

当我们引入A的时候,A依赖于Bmaven 自动会为我们引入B的依赖,但是不是我们自己选择的版本,可能会出现不稳定的情况,我们可以引入A的时候排除B

Maven核心总结_第7张图片

 

同一框架的版本声明

Maven核心总结_第8张图片

 

Maven核心总结_第9张图片

 

 

 

 

 

 

 

仓库
1.本地仓库 当前电脑上所有的maven工程服务

Maven核心总结_第10张图片

 

 

 

 

 

 

继承机制

非compile范围的依赖信息不能在依赖链中传递,所以有些工程需要单独配置。但是配置的时候修改不同的版本号很麻烦。我们可以把依赖信息提取到父工程的模块统一管理

 

子工程引用父工程

Maven核心总结_第11张图片

 

 

 

聚合

多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能生效,修改源码后也需要手动进行clean操作,使用聚合可以批量处理

配置i聚合

Maven核心总结_第12张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Maven,javaweb)