0、前言
- 擅长管理大型项目
- 自动管理你需要的jar包
自动进行下载我们需要的jar包。
1、maven的概念
- Maven是项目进行模型抽象,充分运用面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的
软件项目管理工具
。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。 - 说白了: Maven是由Apache开发的一个工具用来管理java项目, 依赖管理(jar包的管理),项目构建。
2、Maven的作用
- 依赖管理: maven
对项目的第三方构件(jar包)进行统一管理
。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。 - 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:
编译、测试、打包、部署、运行。
- maven
对工程分模块构建
,提高开发效率。
3、Maven的概念模型
- 项目对象模型(Project Object Model),POM对象模型,每个maven刚工程中都有一个
pom.xml
文件,定义工程所依赖的jar包、本工程的坐标、打包的方式。
- 依赖管理系统(基础核心),maven通过坐标对项目工程所依赖的jar包统一规范管理。
- maven定义一套
项目生命周期
。清理、初始化、编译、测测试、报告、打包、部署、站点生成。
- 一组标准集合,maven工程有自己标准的工程目录结构、定义坐标有标准。
- maven管理项目生命周期过程都是
基于插件完成
的,例如:开发中使用的tomcat插件。
4、Maven的仓库
4.1 Maven的仓库
仓库名称 | 作用 |
---|
本地仓库 | 相当于缓存 ,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。 |
中央仓库 | 就是远程仓库 ,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:[https://repo1.maven.org/maven2/] |
远程仓库(私服) | 私服是一种特殊的远程仓库 ,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。 |
4.2 仓库中存放的内容
- Maven自身运行所需要的插件
- 第三方框架(spring/mybatis/springmvc)和工具类的jar包
- 我们自己开发的maven项目安装后的jar包
5、maven的坐标
- Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。在Maven中,不论什么一个依赖、插件或者项目构建的输出, 都能够称之为构件。
- 为了能自动化的解析任何一个Java构件. Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。
- 包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:
groupId
:项目组织唯一的标识符
,实际对应JAVA的包的结构
- (一般写公司的组织名称 例如:com.han,com.alibaba)
artifactId
: 项目的名称
version
:定义项目的当前版本
- 例如:要引入druid的jar包,只需要在pom.xml配置文件中配置引入druid的坐标即可:
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>