You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Apache Wiki <wi...@apache.org> on 2008/12/11 14:50:57 UTC
[Maven Wiki] Update of "Chinese Maven In Five Minutes" by Iacob
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Maven Wiki" for change notification.
The following page has been changed by Iacob:
http://wiki.apache.org/maven/Chinese_Maven_In_Five_Minutes
New page:
Maven五分钟入门
安装
Maven是一款Java工具,如果要进行下面的步骤必须安装Java。
首先下载Maven并且按照步骤将其安装,然後,在终端或命令提示符下输入:
mvn --version
它会打印出所安装的Maven的版本,例如:
Maven version: 2.0.8
Java version: 1.5.0_12
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"
根据网络设置或许会需要一些其他的设置。如需要的话请参看 Maven配置指南。
建立一个工程
在命令行上,运行如下的Maven目标(Goal):
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
如果Maven是全新安装的,第一次运行时会花费一些时间,因为Maven会下载最新的套件(插件包和其他文件)到本地,也有可能运行几次命令才能成功,因为远程服务器会在下载完毕前超时。不过,有许多方法来解决这个问题。
你可能注意到create目标(Goal)创建了一个与套件名(artifactId)同名的目录,现在切入这个目录。
cd my-app
在这个目录下会看到一个 标准工程结构
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
src/main/java目录下包含工程的源代码,src/test/java目录下包含测试代码,pom.xml是项目的项目对象模型(Project Object Model),或简称POM。
项目对象模型(POM)
pom.xml是Maven工程的核心配置,这个文件包含了按照需要建立(build)工程时需要的大部分信息,POM文件非常庞大但可以简化,......
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
上面步骤做了什么?
刚刚执行了Maven的目标(Goal)archetype:create, 而且向这个目标传递了一些参数。前缀``archetype''是包含此目标的插件的名称。如果对Ant熟悉,你可以认为它和Ant中的"任务"(task)相似。这个目标创建了基于这个archetype的一个普通的工程。...。例如jboss-maven-plugin的作用是``处理一些jboss的事务''。
编译这个工程
mvn package
命令行会打印出许多动作,结尾部分如下:
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Oct 05 21:16:04 CDT 2006
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
和执行的第一个命令(archetype:create)不同,你可能注意到第二个命令只包含一个单词 -- package。与目标(Goal)不同,这是一个``阶段''(phase)。阶段是建立过程的生命周期中的一个步骤,建立过程包含一系列的步骤。当给出一个阶段时,Maven会顺序执行每个阶段直到到达给出的那个。例如,如果我们执行编译(compile)阶段,实际被执行的阶段是:
1. validate
2. generate-sources
3. process-sources
4. generate-resources
5. process-resources
6. compile
可以使用下面的命令测试刚刚编译并且打包的JAR文件:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
它会立即给出:
Hello World!
运行Maven工具
Maven包含的各个阶段
全部项目的列表会很长,这里列出的是需要执行的最常见的默认生命周期。
* validate: 检验工程是否正确,是否给出了所有必要的信息。
* compile: 编译工程的源代码
* test: 使用合适的单元测试框架测试编译过的源代码。此处的测试步骤不需将编译得到的字节码打包和部署。
* package: 将编译得到的字节码打包成可以用来将其发布(distribute)的格式,比如JAR。
* integration-test: 如果需要将这个包放到特定环境中进行集成测试则处理并部署此包。
* verify: 运行检验程序确认这个包可用且满足合格条件。
* install: 将此包安装到本地套件库,以便其他工程可以在本地通过依赖关系使用此包。
* deploy: 发布到集成或发布环境,拷贝最终完成的包到远程套件库,以便和其他开发者或工程共享。
还有两个Maven生命周期没有在上文列出,是:
* clean: 清除被先前建立过程创建的套件。
* site: 为这个工程建立网站文档。
阶段实际上是被映射到底层的目标上。每个阶段按照包的类型执行目标。例如,在工程的类型是JAR时执行jar:jar,执行war:war时的工程类型是 - 你已经猜到了 - 是WAR。
记住有趣的一点是阶段和目标会可以顺序执行。
mvn clean dependency:copy-dependencies package
这个命令会清理工程,拷贝依赖的内容,并且给这个工程打包(会执行所有的阶段直到到达package阶段)。
生成站点
mvn site
这个阶段会基于工程的工程对象模型(POM)生成一个网站,在这个网站上可以查看到在目标或站点下生成的文档。
结束语
我们希望这段简短的介绍能够使您对Maven的灵活性开始感兴趣,不过这是一篇十分简练的快速入门指南。现在您可以准备了解关於刚刚执行的那些动作的具体信息,请参看 Maven入门指南。
© 2002-2008 The Apache Software Foundation
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org