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环境参数-P
  • phase:Maven内置的生命周期,比如compilepackage
  • goal:Maven插件会定义一系列构建目标,有些会挂载到phase上,执行对应生命周期时会自动调用,有些则需要直接通过goal来调用

注意:Maven参数的写法比较特殊,写法例如-DpropA=valueA。在Windows的PowerShell中,这类参数无法正确解析,该问题可以使用单引号包裹解决,如'-DpropA=valueA',Linux的BashShell和Windows的CMD下则没有此问题。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。