在Windows上安装Maven:
1. 首先检查JDK安装
通过命令行执行命令:echo %JAVA_HOME%和 java -version,可以查看当前java的安装目录及java的版本,maven要求JDK的版本必须在1.4以上。
2. 下载Maven
前往maven的下载页面:http://maven.apache.org/download.cgi下载最新或稳定版的maven,如:apache-maven-3.2.3-bin.zip。
3. 安装Maven
将压缩文件解压到你想要安装的目录下,比如我的路径是:D:\workspace\study\apache-maven-3.2.3。然后在系统的环境变量中新建一个变量,变量名为M2_HOME,变量值为Maven的安装目录 D:\workspace\study\apache-maven-3.2.3。
然后在系统变量path的末尾加上 %M2_HOME%\bin,如
做这些步骤的意义是,以后我们再命令行中输入命令时windows会自动在maven的安装目录\bin文件夹中扫描相关的命令。
4. 检查maven安装
通过输入echo %M2_HOME%和mvn -v 来查看maven的安装目录及查看maven的版本。
5. maven更新
maven更新直接把新的maven解压,然后修改M2_HOME用户变量指向新的安装目录即可。
安装目录分析:
1. M2_HOME
在M2_HOME所指向的目录下,有如下的内容:
- bin
在该目录下包含了mvn的运行脚本,这些脚本用来配置java命令,准备classpath和相关的Java系统属性,然后执行java命令。在windows下常用的有mvn.bat 和 mvnDebug.bat,这两个文件由什么关系呢?两个文件基本一样,只是mvnDebug比maven多了一条MAVEN_DEBUG_OPTS的配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。
- boot
该目录只包含一个文件,以我当前的版本为例,该文件为plexus-classworlds-2.5.1.jar,plexus-classworlds是一个类加载器,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,maven使用该加载框架加载自己的类库。普通用户无需关心此文件。
- conf
该目录包含了一个非常重要的文件settings.xml,直接修改该文件,就能在机器上全局定制Maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录(~表示用户目录),然后在用户范围(而非独立于maven安装文件)定制Maven的行为。然后将慢慢分析其中的各个元素。
- lib
该目录包含了所有Maven运行时需要的Java类库,maven本身是分模块进行开发的,因此可以看到诸如maven-core-3.2.3.jar和maven-model-3.2.3.jar之类的文件,此外还可以看到maven用到的第三方依赖。可以说,lib目录就是真正的maven。
2. ~/.m2
我们先运行一条简单的命令:mvn help:system,该命令会打印出所有的Java系统属性和环境变量,运行这条命令的目的是让Maven执行一个真正的任务。我们可以从命令行输出看到Maven会下载maven-help-plugin,包括pom文件和jar文件。这些文件都被下载到了Maven本地仓库中。
现在打开当前用户目录,在我的windows7中目录为C:\Users\chenlei.cl,在该目录下可以看到.m2文件夹,默认情况下该文件夹放置了Maven本地仓库.m2/repository。所有的Maven构件都被储存到该仓库中,以方便重用。可以到~/.m2/reposi-tory/org/apache/maven/plugins/maven-help-plugins/目录中找到刚才下载的maven-help-plugin的pom文件和jar文件。maven根据一套规则来确定任何一个构件在仓库中的位置(根据所谓的坐标),在后面章节会详细讲到。
安装m2eclipse:
m2eclipse是eclipse下一款十分强大的maven插件。
启动eclipse之后,在菜单中选择Help,然后选择Install New Software...,接着会看到一个Install对话框。单击Work with:字段边上的Add按钮,会弹出一个新的Add Repository对话框。在name字段中输入m2e,在location字段中输入http://download.eclipse.org/technology/m2e/milestones/1.6
,(似乎最新版的Eclipse已经自带了m2eclipse), 然后单击OK按钮。Eclipse会下载m2eclipse安装站点上的资源信息。等待资源载入完成之后,再将其全部展开,就能看到如下图所示的界面。
选择相应的组件之后,一路向下即可。注意在下载过程中,可能会下载一些相关联的其他组件。
卸载m2eclispe:
进入eclipse->help->Installation Details->Installed Software中选择m2eclipse相关的组件进行卸载即可。
Maven安装最佳实践:
1. 设置MAVEN_OPTS环境变量
通常可以设置MAVEN_OPTS的值为 -Xms128m -Xms512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置,则很容易得到java.lang.OutOfMemeoryError,因此一开始就配置该变量是推荐的做法。
2. 配置用户范围settings.xml
Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml,前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。
推荐使用用户范围的setting.xml,主要是为了避免无意识地影响到系统中的其他用户,而且为了以后maven升级的方便,直接把配置文件从仓库拷过去就可以了。^_^
3. 不要使用IDE内嵌的Maven
当eclipse集成Maven时,会安装上一个内嵌的eclipse,这个eclispe通常会比较新,但不一定很稳定,往往和命令行使用的Maven不是同一个版本。这里又会出现两个潜在的问题:首先,较新版本的Maven存在很多不稳定的因素,容易造成一些难以理解的问题;其次,除了IDE,也经常还会使用命令行的Maven,如果版本不一致,容易造成构建行为的不一致。因此在IDE中配置Maven插件时使用与命令行一致的Maven。
在m2clipse环境中,单击菜单栏中的Windows,然后选择Preferences,在弹出的对话框中,展开左边的Maven项,选择Installation子项,在右边的面板中,能够看到有一个默认的Embedded Maven安装被选中了。单击Add...按钮,然后选择Maven安装目录M2_HOME,添加完毕之后选择这一个外部的Maven。