Maven简介
Maven是一个自动化项目管理和构建工具,在Java应用程序开发中有广泛的应用。如果不使用Maven,在较大的项目开发时,我们会花费大量的时间寻找并下载项目需要的Jar包,Jar包的版本和兼容性更是一个难以解决的问题,除此之外,编写的项目也是高度依赖于我们所使用的IDE构建配置,这对于团队合作非常不利,Maven就是一个用来解决这些问题的工具。
Maven官方主页:https://maven.apache.org/
同类工具对比之Gradle
Gradle是新一代的项目管理和构建工具,Gradle基于Groovy脚本语言能够实现更加灵活的构建流程配置,Android Studio开发时就默认使用Gradle进行构建。然而实际上,尽管使用Groovy代替XML能够让配置更加简洁和灵活,但是也同样极大的增加了Gradle的学习和使用成本,Gradle并没有取代Maven,而是针对于复杂的构建流程,成为了一个不错的可选方案。
安装Maven
我们常用的集成开发工具Eclipse内置了Maven程序,但是内置的Maven可能不方便我们使用命令行,我们通常还是习惯于自己安装一个,然后在IDE中配置使用我们自己安装的Maven。
下载Maven的压缩包:http://maven.apache.org/download.cgi
解压后需要配置环境变量:
MAVEN_HOME:指向Maven的根目录Path:指向Maven中的bin目录
环境变量设置完成后,可以使用命令mvn -v可以测试Maven是否安装成功。

用户目录下的.m2
Maven使用过程中,会在用户目录下创建一个.m2文件夹,.m2/repository其实就是我们的本地仓库,里面存放的就是Maven下载过的各种依赖。配置新项目时,如果我们需要的依赖在本地仓库中已经有了,Maven就不会重新从网络上下载了。
.m2/settings.xml是Maven的全局配置文件,比如配置中央仓库的镜像,或是配置网络代理,都可以写在这个配置文件中。如果这个文件不存在,我们可以从MAVEN_HOME/conf/settings.xml拷贝一个放到.m2下。
配置镜像
由于国内网络原因,统一配置一个国内的Maven镜像能够加速Maven依赖的下载,我们这里使用阿里云的Maven镜像。
找到本地仓库settings.xml里的<mirrors>标签,添加如下配置:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
Maven命令行格式
操作Maven的通用方式是使用命令行,Maven命令的格式如下。
mvn [options] [<goal(s)>] [<phase(s)>]
options:命令行参数,主要包括两类,属性定义-D和Profile环境参数-Pphase:Maven内置的生命周期,比如compile、package等goal:Maven插件会定义一系列构建目标,有些会挂载到phase上,执行对应生命周期时会自动调用,有些则需要直接通过goal来调用
注意:Maven参数的写法比较特殊,写法例如-DpropA=valueA。在Windows的PowerShell中,这类参数无法正确解析,该问题可以使用单引号包裹解决,如'-DpropA=valueA',Linux的BashShell和Windows的CMD下则没有此问题。