Maven系列(二)之安装和配置详解

检查JDK环境

在安装Maven之前,首先要确认你已经正确安装了JDK。Maven可以运行在JDK 1.4及以上的版本上。

打开cmd输入: java -version

Maven系列(二)之安装和配置详解

下载Maven

Maven官网:http://maven.apache.org/download.html

这里下载此时此刻的最新版本Maven 3.3.9版本

Maven系列(二)之安装和配置详解

解压下载好的apache-maven-3.3.9-bin.zip文件到C:\Program Files目录下,然后添加环境变量步骤如下:

打开系统属性面板(在桌面上右击“我的电脑”→“属性”),单击高级系统设置,再单击环境变量,在系统变量中新建一个变量,变量名为M2_HOME,变量值为Maven的安装目录C:\Program Files\apache-maven-3.3.9-bin\apache-maven-3.3.9。

单击“确定”按钮,接着在系统变量中找到一个名为Path的变量,在变量值的末尾加上%M2_HOME%\bin。

Maven系列(二)之安装和配置详解Maven系列(二)之安装和配置详解

然后在cmd中输入:mvn -v 来查看Maven是否安装成功:

Maven系列(二)之安装和配置详解

这里出现个小问题,因为我环境变量Path中没有配置JAVA_HOME变量,所以Maven找不到所依赖的JDK,我们只需要在Path中加入JAVA_HOME变量即可,如下图:

Maven系列(二)之安装和配置详解

然后重启cmd(更改环境变量后需要重新启动cmd才能将更改后的环境变量识别出来~切记),输入命令:mvn -v 如下图:

Maven系列(二)之安装和配置详解

此时,Maven安装成功~~~

在这里普及下Path的知识:当我们在cmd中输入命令时,Windows首先会在当前目录中寻找可执行文件或脚本,如果没有找到,Windows会接着遍历环境变量Path中定义的路径。

由于将%M2_HOME%\bin添加到了Path中,而这里%M2_HOME%实际上是引用了前面定义的另一个变量,其值是Maven的安装目录。因此,Windows会在执行命令时搜索目录C:\Program Files\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin,而mvn执行脚本的位置就是这里。

Maven系列(二)之安装和配置详解

升级Maven

Maven更新比较频繁,因此用户往往会需要更新Maven安装以获得更多、更酷的新特性,并避免一些旧的bug。

在Windows上更新Maven非常简便,只需要下载新的Maven安装文件,解压至本地目录,然后更新M2_HOME环境变量即可。

安装目录分析

前面讲到设置M2_HOME环境变量指向Maven的安装目录,后文所有使用M2_HOME的地方都指代了该安装目录。

先看下目录的结构和内容,如下图:

Maven系列(二)之安装和配置详解

bin:

该目录包含了mvn运行的脚本,其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于Windows平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本。

该目录还包含了mvnDebug和mvnDebug.bat两个文件,那么mvn和mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。

此外,该目录还包含m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。

boot:

该目录只包含一个文件,以maven 3.3.9为例,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。更多关于classworlds的信息请参考http://class-worlds.codehaus.org/。对于一般的Maven用户来说,不必关心该文件。

conf:

该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制Maven的行为。后面将会多次提到settings.xml,并逐步分析其中的各个元素。

lib:

该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar、maven-model-3.0.jar之类的文件。此外,这里还包含一些Maven用到的第三方依赖,如common-cli-1.2.jar、google-collection-1.0.jar等。

其他文件:

其他:LICENSE.txt记录了Maven使用的软件许可证Apache License Version 2.0;NOTICE.txt记录了Maven包含的第三方软件;而README.txt则包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等。

~/.m2:

我们先运行一条命令: mvn help:system

该命令会打印出所有的Java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助。运行这条命令的目的是让Maven执行一个真正的任务。我们可以从命令行输出看到Maven会下载maven-help-plugin,包括pom文件和jar文件。这些文件都被下载到了Maven本地仓库中。

Maven系列(二)之安装和配置详解

可以到~/.m2/repository/org/apache/maven/plugins/maven-help-plugin/2.2目录下找到刚才下载的maven-help-plugin的pom文件和jar文件,如下图:

Maven系列(二)之安装和配置详解

默认情况下,~/.m2目录下除了repository仓库之外就没有其他目录和文件了,不过大多数Maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml。这是一条最佳实践。

设置HTTP代理

有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问因特网。这种情况下,就需要为Maven配置HTTP代理,才能让它正常访问外部仓库,以下载所需要的资源。

编辑~/.m2/settings.xml文件:

Maven系列(二)之安装和配置详解

上一篇:剑指offer-面试题17.合并两个排序的链表


下一篇:dom4j生成xml