本文后续操作的前提是您已经在您的本地操作系统上安装了稳定版本的 JDK,并正确配置了相关的环境变量。您可以在命令行输入:java -version 命令,然后回车即可查看您本机的 JDK 安装及配置是否正确,并可看到 JDK 的版本信息。下面的操作均基于 Windows XP。如果想学习在其他操作系统上的安装,请访问:http://www.sonatype.com/books/maven-book/reference_zh/installation.html
安装Maven
下载 maven 最新的二进制版本,下载地址:http://maven.apache.org/download.html。解压 maven 归档文件至您想存放的目录,例如:在我本机,我将其解压至:D:\programfile\ 目录下。接下来只需要设置两个环境变量就 OK 了:
1. 在您操作系统的用户变量或者系统变量中添加一个变量 M2_HOME,其值即为 maven 的 home 路径,在我本机即为:D:\programfile\maven-2.1.0,截图如下:
2. 将 maven 的 bin 目录路径添加至系统变量或用户变量的 path 变量的值中,要添加的部分为:%PATH%;%M2_HOME%\bin。截图如下:
当然您也可以在命令行设置环境变量,如图所示:
但是在命令行设置环境变量后,您仅仅可以在当前会话使用Maven。除非您把它们加入系统变量,否则您将需要每次登陆系统后运行这两行命令。
验证Maven安装
当Maven安装完成后,你可以检查一下它是否真得装好了,通过在命令行运行 mvn -v。如果Maven装好了,你应该能看到类似于下面的输出。
C:\Documents and Settings\chenlong>mvn -v
Apache Maven 2.1.0 (r755702; 2009-03-19 03:10:27+0800)
Java version: 1.5.0_06
Java home: C:\Program Files\jdk1.5.0_06\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
如果你看到了这样的输出,那么Maven已经成功安装了。如果你看不到,而且你的操作系统找不到 mvn 命令,那么确认一下PATH和M2_HOME环境变量是否已经正确设置了。
Maven安装细节
现在来看一下 maven 的安装目录下都有些什么东东:
LICENSE.txt
NOTICE.txt
README.txt
bin/
boot/
conf/
lib/
LICENSE.txt包含了Apache Maven的软件许可证。 NOTICE.txt包含了一些Maven依赖的类库所需要的通告及权限。README.txt包含了一些安装指令。 bin/ 目录包含了运行Maven的mvn脚本。 boot/ 目录包含了一个负责创建Maven运行所需要的类装载器的JAR文件(classworlds-1.1.jar)。 conf/ 目录包含了一个全局的settings.xml文件,该文件用来自定义你机器上Maven的一些行为。如果你需要自定义Maven,更通常的做法是覆写 ~/.m2目录下的settings.xml文件,每个用户都有对应的这个目录。lib/ 目录有了一个包含Maven核心的JAR文件(maven-2.1.0-uber.jar)。
用户相关配置和仓库
当你不再仅仅满足于使用Maven,还想扩展它的时候,你会注意到Maven创建了一些本地的用户相关的文件,还有在你home目录的本地仓库。在 ~/.m2 目录下有: ~/.m2/settings.xml
该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义Maven的行为。~/.m2/repository/
该目录是你本地的仓库。当你从远程Maven仓库下载依赖的时候,Maven在你本地仓库存储了这个依赖的一个副本。
注意
在Unix或Mac OSX上,可以用 ~ 符号来表示你的home目录,(如~/bin表示/home/tobrien/bin)。在Windows上,我们仍然使用 ~ 来表示你的home目录。在Windows XP上,你的home目录是 C:\Documents and Settings\chenlong,在Windows Vista上,你的home目录是 C:\Users\chenlong。从现在开始,你应该能够理解这种路径表示,并翻译成你操作系统上的对应路径。
获得Maven帮助
http://maven.apache.org
你首先应该看看这里,Maven的web站点包含了丰富的信息及文档。每个插件都有几页的文档,这里还有一系列“快速开始”的文档,它们是本书内容十分有帮助的补充。虽然Maven站点包含了大量信息,但它同时也可能让你迷惑沮丧。那里提供了一个自定义的Google搜索框,以用来搜索已有的Maven站点信息,它会比通用的Google搜索提供更好的结果。
Maven User Mailing List
Maven用户邮件列表是用户问问题的地方。在你问问题之前,你可以先搜索一下之前的讨论,有可能找到相关问题。问一个已经问过的问题,而不先查一下该问题是否存在了,这种形式不太好。有很多有用的邮件列表归档浏览器,我们发现Nabble最有用。你可以在这里浏览邮件列表:http://www.nabble.com/Maven---Users-f178.html。你也可以按照这里的指令来加入用户邮件列表:http://maven.apache.org/mail-lists.html。
http://www.sonatype.com
Sonatype维护了一个本书的在线副本,以及其它Maven相关的指南。
注意
除去一些专门的Maven贡献者所做的十分优秀的工作,Maven web站点组织的比较糟糕,有很多不完整的,甚至有时候会误导人的文档片段。在整个Maven社区里,插件文档的一般标准十分缺乏,一些插件的文档十分丰富,但是另外一些连基本的使用命令都没有。通常你最好是在用户邮件列表里面去搜索下解决方案。
使用Maven Help插件
Maven Help插件能帮你列出活动的Maven Profile,显示一个实际POM(effective POM),打印实际settings(effective settings),或者列出Maven插件的属性。
Maven Help 插件有四个目标。前三个目标是active-profiles、effective-pom、effective-settings,它们描述一个特定的项目,它们必须在项目的目录下运行。 最后一个目标是describe,它相对比较复杂,展示某个插件或者插件目标的相关信息。
help:active-profiles
列出当前构建中活动的Profile(项目的,用户的,全局的)。
help:effective-pom
显示当前构建的实际POM,包含活动的Profile。
help:effective-settings
打印出项目的实际settings, 包括从全局settings和用户级别settings继承而来的配置。
help:describe
描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件的 groupId 和 artifactId。
help:describe 目标的使用
通过该目标的 plugin 参数你可以指定你想要研究哪个插件,你可以传入插件的前缀(如 help 插件就是 maven-help-plugin),或者可以是 groupId:artifact[:version],这里version 是可选的。比如,下面的命令使用 help 插件的 describe 目标来输出 Maven Help 插件的信息:
mvn help:describe -Dplugin=help
通过设置 plugin 参数来运行 describe 目标,输出的是该插件的Maven坐标,目标前缀,和该插件的一个简要介绍。尽管这些信息非常有帮助,但通常你还是需要了解更多的详。如果你想要 Help 插件输出完整的带有参数的目标列表,只要运行带有参数 full 的 help:describe 目标就可以了,像这样:
mvn help:describe -Dplugin=help -Dfull
该选项能让你查看插件所有的目标及相关参数。但是有时候这些信息显得太多了。这时候你可以获取单个目标的信息,设置 mojo 参数和 plugin 参数。下面的命令列出了Compiler 插件的 compile 目标的所有信息:
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
注意
什么?Mojo ?在Maven里面, 一个插件目标也被认为是一个 "Mojo"。