Maven安装是一个简单和直接的过程。本章将介绍如何使用Windows 7操作系统安装和设置Maven。您可以对其他操作系统执行相同的过程。
注意Maven是一个基于Java的应用程序,需要Java开发工具包(JDK)才能正常工作。 Maven版本3.2需要JDK 1.6或更高版本,3.0 / 3.1版本可以使用JDK 1.5或更高版本运行。在继续安装Maven之前,请确保已安装Java。如果没有,请从http://www.oracle.com/technetwork/java/javase/downloads/index.html安装JDK(不仅仅是Java运行时环境[JRE])。在本书中,我们将使用JDK 1.7。
您将从Apache Maven网站(http://maven.apache.org/download.html)下载最新版本的Maven开始安装过程。在撰写本文时,最新版本是3.2.3。下载Maven 3.2.3 binary .zip文件,如图2-1所示。
图2-1。 Maven下载页面
下载完成后,将发行版解压缩到计算机上的本地目录。它将创建一个名为apache-maven-3.2.3-bin的文件夹。本书假设您已将apache-maven-3.2.3-bin文件夹的内容放在c:\ tools \ maven目录下,如图2-2所示。
图2-2。 Maven安装位置
安装过程的下一步是添加指向Maven安装目录的M2_HOME环境变量,在我们的例子中为c:\ tools \ maven。启动“开始”菜单,然后右键单击“计算机”选项。接下来选择系统属性,然后选择高级系统设置。这将启动如图2-3所示的窗口。
图2-3。系统属性“窗口
单击环境变量按钮,然后单击系统变量下的新建。输入如图2-4所示的值,然后单击“确定”。
图2-4。 Maven Home系统变量
此过程的最后一步是修改路径环境变量,以便可以从命令行运行Maven命令。选择路径变量,然后单击编辑。在路径值的开始处添加%M2_HOME%/ bin,如图2-5所示。单击“确定”。这完成了Maven安装。如果您有任何打开的命令行窗口,请关闭它们并重新打开一个新的命令行窗口。添加或修改环境变量时,新值不会自动传播到打开的命令行窗口。
图2-5。将Maven Home添加到路径变量
MAVEN_OPTS环境变量
当使用Maven时,尤其是在一个复杂的项目中,你可能会遇到OutOfMemory错误。这可能发生,例如,当您运行大量的JUnit测试或当您生成大量报告时。要解决此错误,请增加Maven使用的Java虚拟机(JVM)的堆大小。这是通过创建一个名为MAVEN_OPTS的新环境变量在全局完成的。首先,我们建议使用值-Xmx512m。
测试安装
现在Maven已经安装,现在是测试和验证安装的时候了。打开命令提示符并运行以下命令:
mvn -v
此命令应输出类似于以下内容的信息:
C:\ Windows \ System32> mvn -vApache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T14:58:10-06:00)Maven主页:c:\ tools \ mavenJava版本:1.7.0_25,供应商:Oracle CorporationJava home:C:\ Java \ jdk1.7.0_25 \ jreDefault locale:en_US,platform encoding:Cp1252OS name:“windows 7”,version:“6.1”,arch:“x86”
-v命令行选项指示Maven安装的路径以及它使用的Java版本。您也可以通过运行扩展命令mvn --version获得相同的结果。
获得帮助
您可以使用-h或--help选项获取Maven的命令行选项列表。运行以下命令将产生类似于图2-6所示的输出。
mvn -h
图2-6。运行Maven帮助命令的结果
其他设置
到目前为止,我们提供的安装步骤足以让您开始使用Maven。但是,对于大多数企业用途,您需要提供其他配置信息。此用户特定配置在位于c:\ Users \ << user_name >> \。m2文件夹中的settings.xml文件中提供。
注意.m2文件夹对于Maven的平滑操作很重要。在许多方面,这个文件夹包含一个settings.xml文件和一个存储库文件夹。存储库文件夹包含Maven需要的插件JAR文件和元数据。它还包含Maven从Internet下载的与项目相关的JAR文件。我们将在第3章仔细观察这个文件夹。
默认情况下,.m2文件夹位于主目录中。在Windows中,此目录通常为c:\ Users \ << your_user_name >>。 Maven自动创建.m2文件夹。如果您在计算机上没有看到此文件夹,请继续创建一个。
开箱即用的.m2文件夹不包含settings.xml文件。在本地计算机上的.m2文件夹中,创建一个settings.xml文件,并复制框架settings.xml文件的内容,如清单2-1所示。我们将在以后的章节中介绍这些元素中的一些。表2-1提供了元素的简要描述。
清单2-1。 Skeleton Settings.xml内容
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
表2-1。 settings.xml的元素的详细信息
元素名称 说明
localRepository
Maven在c:\ Users \ << your_user_name >> \。m2 \ repository文件夹中本地存储插件和依赖关系的副本。此元素可用于更改本地存储库的路径。例如,<localRepository> c:\ mavenrepo </ localRepository>会将存储库位置更改为mavenrepo文件夹。
interactiveMode
顾名思义,当此值设置为true时,默认值为Maven与用户进行交互以进行输入。
offline离线
当设置为true时,此配置指示Maven在离线模式下操作。默认值为false。
servers 服务器
Maven可以与各种服务器交互,例如Apache Subversion(SVN)服务器,构建服务器和远程存储库服务器。此元素允许您指定连接到这些服务器所需的安全凭证,例如用户名和密码。
mirrors 镜子
顾名思义,镜像允许您为存储库指定备用位置。
proxies 代理
代理包含连接到Internet所需的HTTP代理信息。
profiles 个人资料
配置文件允许您对某些配置元素(例如存储库和pluginRepositories)进行分组。
activeProfile
activeProfile允许您指定一个默认配置文件以使Maven可以使用。
设置代理
正如我们将在第3章中详细讨论的,Maven需要一个Internet连接来下载插件和依赖项。一些公司使用HTTP代理来限制对Internet的访问。在这些情况下,运行Maven将导致无法下载工件错误。要解决此问题,请编辑settings.xml文件并添加特定于您公司的代理信息。示例配置如清单2-2所示。
代码2-2。具有代理内容的Settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<proxies>
<proxy>
<id>
companyProxy</id>
<active>
true</active>
<protocol>
http</protocol>
<host>
proxy.company.com</host>
<port>
8080</port>
<username>
proxyusername</username>
<password>
proxypassword</password>
<nonProxyHosts />
</proxy>
</proxies>
</settings>
IDE支持
在本书中,我们将使用命令行创建和构建示例应用程序。 如果您有兴趣使用IDE,好消息是所有现代IDE都带有完整的Maven集成,无需任何进一步的配置。
概要
本章介绍如何在本地计算机上安装Maven。 您了解到Maven会下载其操作所需的插件和工件。 这些工件存储在.m2 \ repository文件夹中。 .m2文件夹还包含settings.xml文件,可用于配置Maven的行为。
在下一章中,我们将更深入地研究Maven的依赖管理。