第 1 章 初始化Maven2环境

一般来说,介绍Maven2的文章都是让你自己去下载Maven2发布包,安装到本机上后调用一系列命令,在这个过程中Maven2会自动将运行所需的插件和依赖下载到本地。但是这个下载的过程太痛苦了,大多数人无法承受漫无目的的等待,只能选择放弃。

所以我们决定独辟蹊径,向大家推荐一种更快捷的方法。

警告

请注意,安装Maven2之前一定要在系统中安装好JDK,并在环境变量中正确配置JAVA_HOME,否则是无法正常运行Maven2的。

1.1. 安装配置Maven2

首先还是要安装好Maven2(前提是已经装好了JDK。)

第一步,下载Maven2的发布包。

下载页面:http://maven.apache.org/download.html

选择的是http://labs.xiaonei.com/apache-mirror/maven/binaries/apache-maven-2.1.0-bin.zip ,这是2009-3-21发布的最新版。

第二步,将获得的发布包解压。

我们将解压得到的apache-maven-2.1.0目录放到系统D:/apps/目录下。之后的配置都会以此为准。

解压后的目录结构

图 1.1. 解压后的目录结构


第三步,配置环境变量。

我的电脑(单击鼠标右键)->属性->高级->环境变量

配置环境变量

图 1.2. 配置环境变量


新增一个用户变量。

新增用户变量

图 1.3. 新增用户变量


把%M2_HOME%\bin添加到环境变量PATH中。

修改PATH变量

图 1.4. 修改PATH变量


把这些变量设置好后,点击确定。

然后再打开一个cmd控制台,键入mvn -v,输出下面的结果就表示我们已经把Maven2成功的安装到系统中了。

显示Maven2的版本信息

图 1.5. 显示Maven2的版本信息


1.2. 复制资源库

进入lingo-sample/ch01/目录,执行mvn package

提示

如果你不知道怎么使用批处理命令,可以去网上搜索一下有关批处理命令的用法,在此我们先介绍一下如何使用批处理命令进入硬盘下某个分区的某个目录。

假设当前目录是在C盘下的Documents and Settings\Administrator目录下,而我们希望进入D盘下的apps\lingo-sample\ch01目录下。这是需要先输入D:回车,切换盘符,再输入cd apps\lingo-sample\ch01进入目录下。

D:
cd apps\lingo-sample\ch01
            

执行上述两条命令之后,即进入D盘下的apps\lingo-sample\ch01目录了。

在ch01下执行mvn package

图 1.6. 在ch01下执行mvn package


我们会看到屏幕上无数信息疾驰而过,大量文件被下载到了本地。当最后一个文件下载完成后,Maven2才开始执行package命令对整个工程进行打包,可以在target目录下找到新生成的ch01-1.0.war。

当再次执行mvn package的时候,Maven2不用下载任何文件就可以直接执行package命令。

再次执行mvn package

图 1.7. 再次执行mvn package


这就是Maven2对待第三方依赖库的策略,Maven2会将每次用过的依赖库保存到本地,当需要再次使用相同的依赖库时,就可以直接在本地读取,避免重复下载的操作,提高了效率。

默认情况下,Maven2用来保存本地依赖的地方是当前登陆用户的工作目录的.m2/repository/目录下,使用~/.m2/repository/来表示,打开这个目录可以看到如下的目录结构,这些都是我们使用到的依赖了。

本地repo

图 1.8. 本地repo


查看~/.m2/repository/目录的属性可以发现,这个目录下所有文件的总和是2.90M。

本地repo的大小

图 1.9. 本地repo的大小


本来这些文件都应该在你第一次运行Maven2的时候,从http://repo1.maven.org/maven2/上一个一个下载到你的本地机器上,如果阁下的网络连接稍有偏差,轻则操作中断需要重新执行下载,重则破坏本地资源库中的文件,这种情况下Maven2只能一直报告文件解压出错,只能通过手工删除坏掉的文件,才能重新执行下载,继续操作。

相信我,太多人因为无法忍受漫长的下载过程,而放弃了对Maven2的尝试。

我们的教程就是要规避这个最大的风险,保证第一次运行顺利成功,让你知道Maven2没有那么难,以后再遇到下载文件过大的情况,同志们也就有信心坚持到最后了。

可是话说回来,既然选择使用Maven2,总有一天会遇到从网上下载依赖库的情况,我们不敢保证为你提供所有项目需要的依赖库,所以希望大家不要完全依赖我们教程中提供的资源库,找些机会去网上寻找自己所需的插件或依赖,这样会为以后使用Maven2做好准备。