Maven
什么是maven
1.Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。
2.Maven的核心功能
Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包。其本质就是通过配置pom.xml来获取jar包,当然这是在该项目必须是maven项目的前提下。
Maven的作用
1构建工程,
2管理jar,
3.编译代码,
4.自动运行单元测试,
5.打包
6.生成报表,
7.部署项目,生成web站点。
Maven的项目结构
Maven01
—src 源代码
—main 主程序
—java
—resources
—test 测试程序
—java
—resources
—target 编译生成的文件
—pom.xml
Maven依赖管理
Maven工程不直接将jar包导入到工程中,而是通过再pom.xml中添加所需的jar包的坐标,这样就避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml中的坐标,到一个专门用于存放jar包的仓库中根据坐标从而找到这些jar包,再把这些jar包拿去运行
pom.xml(project object model)
为了解决这个过程中速度慢的问题,maven 中也有索引的概念,通过建立索引,可以大大提高加载 jar 包的速度,使得我们认为 jar 包基本跟放在本地的工程文件中再读取出来的速度是一样的。这个过程就好比我们查阅字典时,为了能够加快查找到内容,书前面的目录就好比是索引,有了这个目录我们就可以方便找到内容了,一样的在 maven 仓库中有了索引我们就可以认为可以快速找到 jar 包。
Pom.xml从仓库获取jar包的过程
优先从本地仓库查找,如果本地仓库没有该jar包,如果配置了私服,就从私服中查找,私服中没有就从中央仓库中查找,然后下载到本地仓库,下次使用就可以直接从本地仓库中查找,没有配置私服则,直接从中央仓库中查找
8.maven的生命周期和插件
maven对项目构建过程分为三套相互独立的生命周期,这里说的三套而且是相互独立, 这三套分别是:
Clean Lifecycle :在进行真正的构建之前进行一些清理工作。
Default Lifecycle :构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle :生成项目报告,站点,发布站点。
Maven的生命周期都是基于插件运行的。
9.maven的依赖范围
<scope>compile</scope>
compile:整个编译阶段,测试,打包都需要
test:测试范围时需要
provided:在部署时,服务器提供。
10全局变量
1.自定义的变量**
定义:
**\<properties\>**
**\<spring.version\>4.3.10.RELEASE\</spring.version\>**
**\</properties\>**
引用:\${}
**\<dependency\>**
**\<groupId\>org.springframework\</groupId\>**
**\<artifactId\>spring-context\</artifactId\>**
**\<version\>\${spring.version}\</version\>**
**\</dependency\>
2.系统使用的变量
<dependency\>
\<maven.compiler.source\>1.8\</maven.compiler.source\> 源码编译 jdk 版本
\<maven.compiler.target\>1.8\</maven.compiler.target\> 运行代码的 jdk 版本
\<project.build.sourceEncoding\>UTF-8\</project.build.sourceEncoding\> 项目构建使用的编码,避免中文乱码
\</dependency\>