这章简要介绍下maven这个工具,maven的功能很强大,除了依赖管理外还有例如项目生命周期的管理等,但很多人只把它当做一个依赖管理工具(下载依赖、打包)来使用。确实,对于开发人员来说,初识maven,感受最深的就是maven的jar包依赖管理。由于我们只是初步学习使用maven,我们就主要讲讲maven的依赖管理。
在maven项目中,我们不在需要查找下载自己开发所需的jar包,然后再一个个放入classpath,而是直接在pom.xml文件中添加自己的所需要的jar包依赖申明,maven会自动进行检查,如果本地有就ok,如果本地没有就会自动进行下载。
一个最简单的jar包依赖如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.7.RELEASE</version>
</dependency>
Maven依赖关系管理
Maven最著名的(也是几乎每个人最先接触到的)就是Maven的依赖管理。
所有的Maven项目包含着一个名为pom.xml的文件,在文件中记录着自己的<groupId><artifactId><version>等字段,这些字段在创建Maven项目时填写,Maven会依据它们来定位到该项目。
在pom中的另一个关键标签是<dependencies>,该标签下可以包含若干个<dependency>标签,而<dependency>下则是上面介绍的<groupId><artifactId><version>等依赖字段,它们确定着一个唯一的项目版本。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.0.11</version>
</dependency>
maven仓库
Maven仓库可简单分成两类: 本地仓库与远程仓库. 当Maven根据坐标寻找构件时, 它会首先检索本地仓库, 如果本地存在则直接使用, 否则去远程仓库下载.
本地仓库: 默认地址为~/.m2/, 一个构件只有在本地仓库存在之后, 才能由Maven项目使用.
远程仓库: 远程仓库又可简单分成两类: 中央仓库和私服.
由于原始的本地仓库是空的, Maven必须至少知道一个远程仓库才能在执行命令时下载需要的构件, 中央仓库就是这样一个默认的远程仓库.
Maven 安装
下载路径:http://maven.apache.org/download.cgi#
解压后配置环境变量:
在环境变量中,新建M2_HOME,设置为D:\env\apache-maven-3.0.4。
修改path变量,在原值之后添加%M2_HOME%\bin;。path变量的取值通过分号进行分隔。
保存后大功告成,在命令行输入mvn -v 查看maven是否配置成功
Maven扩展
Maven除了依赖管理之外还有很多核心功能如:生命周期与插件、模块聚合、模块继承等功能。
Maven 将所有项目的构建过程统一抽象成一套生命周期: 项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成 … 几乎所有项目的构建,都能映射到这一组生命周期上. 但生命周期是抽象的(Maven的生命周期本身是不做任何实际工作), 任务执行(如编译源代码)均交由插件完成. 其中每个构建步骤都可以绑定一个或多个插件的目标,而且Maven为大多数构建步骤都编写并绑定了默认插件.当用户有特殊需要的时候, 也可以配置插件定制构建行为, 甚至自己编写插件.